 
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.