- Home
- Categorie
- Coding e Sistemistica
- PHP
- Aiuto con funzione PHP
-
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(0,'eng') ?> /> </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 ^_^
-
ho risolto in parte il problema
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();"; } ?>
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(0,'eng') ?> /> </td>
-
Per richiamare la funzione devi fare:
<td><input type="radio" name="lang" value="eng" <?php scelta_lingua(0,'eng'); ?> /> </td>
Per il resto mi sa che stai facendo un giro un po' contorto... ma non sapendo che risultato vuoi ottenere é difficile aiutarti.
-
Ciao.
[edited... d'accordo con margheritebianche. O non ho capito cosa vuoi fare oppure ti stai complicando troppo la vita ]
-
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(strlen ($_POST['lang'])==0 || ($_POST['lang'])=="eng"){ ?> checked="checked" <?php } ?> onclick="document.form.action='index.php'; document.form.submit();" /> </td> <td><input type="radio" name="lang" value="ita" <?php if($_POST['lang']=="ita") { ?> checked="checked" <?php } ?> onclick="document.form.action='index.php'; document.form.submit();" /> </td> <td><input type="radio" name="lang" value="ger" <?php if($_POST['lang']=="ger") { ?> checked="checked" <?php } ?> onclick="document.form.action='index.php'; document.form.submit();" /> </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(strlen (".$_POST['lang'].")==".$primo." || (".$_POST['lang'].")==".$lingua.") { ";
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(strlen (ita)==0 || (ita)==eng) { checked='checked'onclick='document.form.action='index.php'; document.form.submit(); /> </td> <td><input type="radio" name="lang" value="ita" if(strlen (ita)== || (ita)==ita) { checked='checked'onclick='document.form.action='index.php'; document.form.submit(); /> </td> <td><input type="radio" name="lang" value="ger" if(strlen (ita)== || (ita)==ger) { checked='checked'onclick='document.form.action='index.php'; document.form.submit(); /> </td> </tr>
-
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.