View Full Version : passaggio variabili php con javascript
<?
$var=file('2004.txt');
$riga=0;
for($i=0;$i<count($var);$i=$i+3) {
...
$riga++;
?>
<form>
<TR class="t2">
<TD width=8%>
<select name="codice" size="1" multiple class="form"
onContextMenu="modifica(this,<? echo '.$riga.' ?>);">
<option value=""><? echo $var[$i][0]; ?></option>
</select>
</TD>
poi in modifica(sender,prova) ho messo
alert(prova);
ma non mi prende il valore!!
non mi fa vedere nessun valore :(
come la devo passare la variabile?
hai provato a debuggare?
se stampi i valori dell'array senza la select cosa vedi a video?
perchè la select non comprende un ciclo for php? :confused:
mm spiegami cosa devo fare...
ho provato ad esempio a mettere $riga al posto di $var[$i..] e mi visualizza il valore senza problemi... il problema è solo nel passaggio della variabile $riga.. il resto funziona tutto bene
come devo debuggare?
non riesco a capire come devo scrivere $riga quando richiamo la funzione javascript :muro:
<select name="codice" size="1" multiple class="form"
onContextMenu="modifica(this,<? echo '.$riga.' ?>);">
<option value=""><? echo $var[$i][0]; ?></option>
</select>
dov'è che hai messo $riga x prova? nella option?
inizia a visualizzare il codice html della pagina generata e verificare se è giusto.. :rolleyes:
Si praticamente se faccio:
<?
$var=file('2004.txt');
$riga=0;
for($i=0;$i<count($var);$i=$i+3) {
...
$riga++;
?>
<form>
<TR class="t2">
<TD width=8%>
<select name="codice" size="1" multiple class="form"
onContextMenu="modifica(this);">
<option value=""><? echo $riga; ?></option>
</select>
</TD>
mi viene visualizzato il valore di $riga... se invece aggiungo alla chiamata modifica()
modifica(this,<? echo '.$riga.' ?>)
la funzione in jscript poi non mi prende il valore di $riga
è qst il problema che non riesco a risolvere... probabilmente passo male la variabile ma non riesco
:muro:
non dovresti scrivere
modifica(this,'<?=$riga?>') ?
ho provato... ma continua a darmi valore non definito
ho provato uno script ke ho trovat sul web:
<?
echo "<script>";
echo "alert(\"$riga\");";
echo "</script>";
?>
e quindi il mio codice è diventato:
<?
$var=file('2004.txt');
$riga=0;
for($i=0;$i<count($var);$i=$i+3) {
...
$riga++;
?>
<form>
<TR class="t2">
<TD width=8%>
<select name="acquisto" class="form" onContextMenu="modifica(this);">
<?
echo "<script>";
echo "alert(\"$riga\");";
echo "</script>";
?>
e funziona!! mi fa vedere la finestra con il valore di $riga..
ma io riga vorrei passarlo in modifica(this,$riga).. ho provato e riprovato prendendo spunto da quel codice ma niente da fare :help:
si ma non puoi scrivere modifica(this,$riga).. perchè $riga nn è una var. javascript....
ti sto dicendo di visualizzare il codice html risultante per rendertene conto, fallo e stampalo qui.. devi mettere almeno un apice caspita, $riga che tipo di dati contiene?
si hai ragione.. era solo per far capire
ma aimè ho trovato l'errore..
modifica è una funzione che a seconda di una scelta fatta dall'utente, richiama un'altra funzione, ed era lì che mi ero dimenticato di passare il valore..
ora non riesco a fare un controllo sulla variabile this, che passo con modifica:
<select name="acquisto" class="form" onContextMenu="modifica(this,'<?=$i/3?>');">
praticamente this la passo a modifica(sender,riga)
e sender lo uso ad esempio in:
sender.options[sender.options.length-1].text
per avere il valore di una option.. ma vorrei mettere un controllo sullavariabile sender, cioè ke se contiene una determinata parola, fa una cosa, altrimenti un'altra...
ma quando vado a visualizzare sender, alert(sender); per vedere quale valore gli viene attribuito, mi da [object], così non capisco cosa contenga..
ovvio, sender è nel tuo caso l'oggetto select, devi individuare i valori tramite selectedindex, è meglio che ti chiarisci le idee sulle specifiche javascript degli oggetti form, fai prima.. :)
mmm bè ho provato così..
sender.options[sender.selectedIndex].text
e mi da il valore della option selezionata, ma io ho bisogno di avere il nome della select :mc:
ho trovato in rete anche
sender.options[sender.selectedIndex].label
ma mi da valore nullo.. :doh:
cosa intendi per "io ho bisogno di avere il nome della select " ?
nel senso, io con onContextMenu="modifica(this)" passo il riferimento alla select su cui clicco con il dx, mi servirebbe il nome della select, perchè ho:
<TD width=40%>
<select name="prova1" onContextMenu="modifica(this)">
<option value="">.......</option>
</select>
</TD>
<TD width=40%>
<select name="prova2" onContextMenu="modifica(this)">
<option value="">.......</option>
</select>
</TD>
quindi in avrei bisogno di ricavare da "this" il nome prova1 o prova2
nn e' chiaro cosa fai in modifica, nn riesci a farlo usando this? cmq dovrebbe esserci una proprietà di this che ti da il nome, forse this.name ? nn sono sicuro..
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.