Buon giorno!
dopo una mattinata di prove mi sono arreso!
facendo un e-commerce, nella visualizzazione del carrello (tramite cookie ma non è questo il problema) do all'utente la possibilità di aumentare o diminuire la quantità del singolo prodotto. lo faccio tramite 2 select e due pulsanti con '+' e '-'.
il codice che mi genera il carrello è il seguente:
Codice PHP:
echo "<table style='width:100%; '>";
echo "<th>Nome</th><th>Prezzo</th><th>Quantità</th><th>Totale</th>";
for($i = 0; $i<count($prodotti)-1; $i++) {
$vett = explode("x",$prodotti[$i]);
$contenuto = mysql_fetch_array($data->query("SELECT * FROM prodotti_vendita WHERE id = ".$vett[0].";",$connessione));
$prezzo = $vett[1]*$contenuto['prezzo'];
echo "<tr>\n";
echo "<td style='border:2px solid red; width:35%;'>[url='specifiche.php?id=".$vett[0]."']\n".$contenuto['nome']."\n</td>\n<td style='border:2px solid red; width:10%;'>\n€".$contenuto['prezzo']."[/url]</td><td style='border:2px solid red; width:10%;'>".$vett[1]."</td>\n<td style='border:2px solid red; width:10%;'>\n€".$prezzo."\n</td>\n";
echo "<td style='width:25%; border:2px solid red;'>\n";
echo "<form method='get' action='' name='form_".$i."' style='width:100%; overflow:hidden;'>\n";
echo "<select name='scegli_quantita_piu_".$i."' style='width:50px;'>\n";
for($j = 0; $j < $contenuto['quantità']; $j++) echo "<option value=".($j+1).">".($j+1)."</option>\n";
echo "</select>\n";
echo "<input type='button' value='+' name='piu' onclick='javascript:document.form_".$i.".action=\"upcarrello.php?id=".$contenuto['id']."&p=piu&q=\"+(document.form_".$i.".scegli_quantita_piu_".$i.".selectedIndex+1); alert(document.form_".$i.".action); document.form_".$i.".submit();' />\n";
echo "<input type='button' value='-' name='meno' onclick='javascript:document.forms[".$i."].action=\"upcarrello.php?id=".$contenuto['id']."&q=meno&q=\"+(document.form_".$i.".scegli_quantita_meno_".$i.".selectedIndex+1); alert(document.form_".$i.".action); document.form_".$i.".submit();' />\n";
echo "<select name='scegli_quantita_meno_".$i."' style='width:50px;'>\n";
for($j = 0; $j < $vett[1]; $j++) echo "<option value=".($j+1).">".($j+1)."</option>\n";
echo "</select>\n";
echo "</form>\n";
echo "</td>\n";
echo "</tr>\n";
}
il codice è un po' incasinato perchè ha delle istruzioni lunghe però io in base a quale tasto prema l'utente, il tasto + o il tasto -,decido che action dare al form preso in causa.
vi posto il codice dei bottoni per maggior chiarezza
Codice PHP:
echo "<input type='button' value='+' name='piu' onclick='javascript:document.form_".$i.".action=\"upcarrello.php?id=".$contenuto['id']."&p=piu&q=\"+(document.form_".$i.".scegli_quantita_piu_".$i.".selectedIndex+1); alert(document.form_".$i.".action); document.form_".$i.".submit();' />\n";
echo "<input type='button' value='-' name='meno' onclick='javascript:document.forms[".$i."].action=\"upcarrello.php?id=".$contenuto['id']."&q=meno&q=\"+(document.form_".$i.".scegli_quantita_meno_".$i.".selectedIndex+1); alert(document.form_".$i.".action); document.form_".$i.".submit();' />\n";
gli alert mi stampano la stirnga corretta! invece il problema è che quando la pagina cambia non va alla pagina che voglio, che dovrebbe essere quella che controllo con l'alert!
mi finisce a questa pagina:
http://localhost/drinkfromitaly/upca...ntita_meno_0=1
non capisco proprio xk =( xk ho molti form in quella pagina? ci sono tanti form quanti sono i tipi di prodotti piu altri due per altre cose...
Bho mi affido a voi!
Grazie!
Edit.
la querystirng si trasforma passando solo il valore delle due select e non quello che effettivamente è l'action.