• User

    Aiuto con funzione PHP

    Sono nuovo di php e sto tentando di fare una funzione per togliere un po di codice php dall'html.
    Questa è la funzione:

    
    function scelta_lingua($primo,$lingua) {
    
    if($primo==0) {
    
    	$if="if(strlen ($_POST['lang'])==$primo || ($_POST['lang'])=='$lingua') { ";	
    
    } else { 
    
    	$if="if($_POST['lang']=='$lingua') { ";
    
      }  
    	echo $if;
    	
    	echo "checked='checked'";
    	
    	echo "onclick='document.form.action='index.php'; document.form.submit();";
    
    	}
    }
    
    ?>
    

    Qui la richiamo nell'HTML

    
    <td><input type="radio" name="lang" value="eng" <?php function scelta_lingua&#40;0,'eng'&#41; ?> />
    		</td>
    

    mentre questo è l'errore che mi da:

    Parse error: parse error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in /var/www/localhost/htdocs/GASTRO24/index.php on line 26

    Sapete darmi una mano, vi ringrazio in anticipo ^_^


  • User

    ho risolto in parte il problema

    
    
    function scelta_lingua&#40;$primo,$lingua&#41; &#123;
    
    	if&#40;$primo==0&#41; &#123;
    
    		$if="if&#40;strlen &#40;".$_POST&#91;'lang'&#93;."&#41;==".$primo." || &#40;".$_POST&#91;'lang'&#93;."&#41;=='".$lingua."'&#41; &#123; ";	
    
    	&#125; else &#123; 
    
    		$if="if&#40;".$_POST&#91;'lang'&#93;."=='".$lingua."'&#41; &#123; ";
    
    	  &#125;  
    	
    	echo $if;
    	
    	echo "checked='checked'";
    	
    	echo "onclick='document.form.action='index.php'; document.form.submit&#40;&#41;;";
    
    &#125;
    
    ?>
    

    ora ho questo errore

    Parse error: parse error, unexpected T_LNUMBER, expecting ')' in /home/gastroba/public_html/index.php on line 75

    quando richiamo la funzione

    
    <td><input type="radio" name="lang" value="eng" <?php function scelta_lingua&#40;0,'eng'&#41; ?> />
    		</td>
    

  • User Attivo

    Per richiamare la funzione devi fare:

    
    <td><input type="radio" name="lang" value="eng" <?php scelta_lingua&#40;0,'eng'&#41;; ?> /> 
          </td>
    
    

    Per il resto mi sa che stai facendo un giro un po' contorto... ma non sapendo che risultato vuoi ottenere é difficile aiutarti.


  • Moderatore

    Ciao.

    [edited... d'accordo con margheritebianche. O non ho capito cosa vuoi fare oppure ti stai complicando troppo la vita 🙂 ] :ciauz:


  • User

    l'idea era quella di spostare il codice php dall'html...

    questo era il codice originale

    
    	<td><input type="radio" name="lang" value="eng" <?php if&#40;strlen &#40;$_POST&#91;'lang'&#93;&#41;==0 || &#40;$_POST&#91;'lang'&#93;&#41;=="eng"&#41;&#123; ?> checked="checked" <?php &#125; ?> onclick="document.form.action='index.php'; document.form.submit&#40;&#41;;" />
    		</td>
    		<td><input type="radio" name="lang" value="ita" <?php if&#40;$_POST&#91;'lang'&#93;=="ita"&#41; &#123; ?> checked="checked" <?php &#125; ?> onclick="document.form.action='index.php'; document.form.submit&#40;&#41;;" />
    		</td>
    		<td><input type="radio" name="lang" value="ger" <?php if&#40;$_POST&#91;'lang'&#93;=="ger"&#41; &#123; ?> checked="checked" <?php &#125; ?> onclick="document.form.action='index.php'; document.form.submit&#40;&#41;;" />
    		</td>
    
    

    sono 3 input radio, cliccandoli refreshano la pagina e settano la lingua, facendo cambiare quindi la lingua del menu

    ma non sono convinto funzioni molto... forse c'è qualcosa che non va.

    soprattutto all'interno della funzione... gli IF .. non so bene come si fanno..

    $if="if&#40;strlen &#40;".$_POST&#91;'lang'&#93;."&#41;==".$primo." || &#40;".$_POST&#91;'lang'&#93;."&#41;==".$lingua."&#41; &#123; ";	
    

    in questo modo il codice che ne viene fuori sulla pagina è questo.. e quindi sbagliato.

    
    <tr align="center">
    		<td><input type="radio" name="lang" value="eng" if&#40;strlen &#40;ita&#41;==0 || &#40;ita&#41;==eng&#41; &#123; checked='checked'onclick='document.form.action='index.php'; document.form.submit&#40;&#41;; />
    		</td>
    
    		<td><input type="radio" name="lang" value="ita" if&#40;strlen &#40;ita&#41;== || &#40;ita&#41;==ita&#41; &#123; checked='checked'onclick='document.form.action='index.php'; document.form.submit&#40;&#41;; />
    		</td>
    		<td><input type="radio" name="lang" value="ger" if&#40;strlen &#40;ita&#41;== || &#40;ita&#41;==ger&#41; &#123; checked='checked'onclick='document.form.action='index.php'; document.form.submit&#40;&#41;; />
    		</td>
    	</tr>
    

  • User Attivo

    Stai mescolando linguaggi lato server (PHP) con linguaggi lato client (javascript).
    Decidi come vuoi farlo (probabilmente se é un check é + javascript, poi la pagina che riceve i dati sarà una pagina php.