$_POST[array]

  • Creatore Discussione Creatore Discussione adfadf
  • Data di inizio Data di inizio

adfadf

Utente Attivo
18 Apr 2009
83
0
0
Salve a tutti, avrei bisogno di leggere con il POST un array che ho creato in un foglio precedente....è probabile che faccio un errore di santassi....ma non so dove.

Questo è il foglio I in cui dichiaro il vettore $risposta[]
PHP:
while($conta<$_SESSION['numrisposte'])
		{
echo"<table align=\"center\"  border=\"0\" width=\"95%\">";
			echo"<tr>";
                  echo"<th width=\"33%\">risposta:<input name=\"$risposta[]\"\" type=\"text\" size=\"35\"/></th>";
				  echo"<th width=\"33%\">eseguita per: <select name=\"$professione[]\"\">";
											echo"<option value=\"1\">Maschi e femmine</option>";
											echo"<option value=\"2\">Maschi</option>";
											echo"<option value=\"3\">Femmine</option>";
											echo"</select></th>";
				 
			echo"</tr>";
echo"</table>";
$conta++;
}

Questo è il codice in cui dovrei leggere il vettore risposta:

PHP:
session_start();
$conta=0;		

while($conta<$_SESSION['numrisposte'])
		{
$query="INSERT INTO risposte (risposta, iddomanda) VALUES ('$_POST['$risposta[$conta]']', 
'$_SESSION[id]')";
$invio= mysql_query($query);
$conta++;
}

Sapete dove è l'errore?? Come dovrei fare? Grazie!!!
 
Non c'è bisogno del simbolo del dollaro davanti al nome del campo, e comunque sbagli ad utilizzarlo. Il campo si deve chiamare:
HTML:
risposta[]

E deve avere come valore il valore che vuoi che abbia l'ID. E poi per richiamarlo dovrai fare:
PHP:
<?php
$_POST['risposta'][0];
?>

Ovviamente al posto di 0 dovrai inserire il numero della risposta che vuoi richiamare.
 
Se ho capito devo fare così:
PHP:
while($conta<$_SESSION['numrisposte'])
		{
echo"<table align=\"center\"  border=\"0\" width=\"95%\">";
			echo"<tr>";
                  echo"<th width=\"33%\">risposta:<input name=\"risposta[]\"\" type=\"text\" value=\"$conta\" size=\"35\"/></th>";
				  echo"<th width=\"33%\">eseguita per: <select name=\"professione[]\"\">";
											echo"<option value=\"1\">Maschi e femmine</option>";
											echo"<option value=\"2\">Maschi</option>";
											echo"<option value=\"3\">Femmine</option>";
											echo"</select></th>";
				 
			echo"</tr>";
echo"</table>";
$conta++;
}


PHP:
$conta=0;	

while($conta<$_SESSION['numrisposte'])
		{
$query="INSERT INTO risposte (risposta, iddomanda) VALUES ('$_POST['risposta']['$conta']', 
'$_SESSION[id]')";
$invio= mysql_query($query);
$conta++;
}

ma no và... forse non ho capito, potresti darmi qualche altra indicazione? grazie
 
ciao
prova a scrivere la query così

PHP:
$query="INSERT INTO risposte (risposta, iddomanda) VALUES ('".$_POST['risposta']['$conta']."',  
'".$_SESSION[id]."')";

mal che vada non funzia

p.s.
che errore ti risulta?
 
No, un momento, non è risposta[] che deve essere un array. Perché vuoi accedervi come se lo fosse? Da quello che vedo lo definisci come array ma alla fine lo usi come un semplice campo di testo. Quindi devi fare così:
PHP:
<?php
echo "<input type=\"text\" name=\"risposta\" value=\"{$conta}\" />";
?>
Sarebbe meglio se usassi le parentesi graffe quando devi processare delle variabili all'interno di una stringa. Poi per accedere al valore usi:
PHP:
<?php
$_POST['risposta'];
?>

Comunque credo di non avere capito quello che devi fare. Facciamo così: dimmi cosa ti serve e ti creo io lo script, ok? Oppure fammi tu un riassunto di nuovo :D
 
devo permettere all'utente di scrivere in dei campi di testo, il numero di tali campi deve essere variabile e dipende da
$_SESSION['numrisposte'].

PHP:
while($conta<$_SESSION['numrisposte'])
		{
echo"<table align=\"center\"  border=\"0\" width=\"95%\">";
			echo"<tr>";
                  echo"<th width=\"33%\">risposta:<input name=\"risposta[]\"\" type=\"text\" value=\"$conta\" size=\"35\"/></th>";
				  echo"<th width=\"33%\">eseguita per: <select name=\"professione[]\"\">";
											echo"<option value=\"1\">Maschi e femmine</option>";
											echo"<option value=\"2\">Maschi</option>";
											echo"<option value=\"3\">Femmine</option>";
											echo"</select></th>";
				 
			echo"</tr>";
echo"</table>";
$conta++;
}

Nel foglio successivo mi serve sapere cosa ha scritto l'utente all'interno dei campi di testo per poterlo inserire nel db.

PHP:
while($conta<$_SESSION['numrisposte'])
		{
$query="INSERT INTO risposte (risposta, iddomanda) VALUES ('$_POST['risposta'][$conta]', 
'$_SESSION[id]')";
$invio= mysql_query($query);
$conta++;
}
ho provato a scrive $conta senzza apici, ma non và....
 
Salve, ho risolto il problema con questa scrittura, Grazie cmq dei consigli!!
PHP:
$r=$_POST['risposta'][$conta];
$t=$_POST['sesso'][$conta];
$c='Si';
$query="INSERT INTO risposte (risposta, iddomanda,sesso,presente) VALUES ('$r','$_SESSION[id]','$t','$c')";
 

Discussioni simili