foreach ($HTTP_POST_VARS['Alt'] as $key => $value)
Frågan#1
Hur gör jag för att kolla att alla varibler är satta? Har provat med följande metod :
if ($send) { // om anv. har tryckt på skicka knappen.
foreach ($HTTP_POST_VARS as $key => $value) {
// kolla så att han har fyllt i allt.
if (!isset ($key) || (empty ($value))) {
//echo "key => $key, value => $value";
$missing = "true";
}
}
if (!isset ($missing)) {
// sätt in allt i databasen.
}
else {
// ge felmeddelande
}
Och här är formuläret som jag vill kontrollera:
echo "<form name='allquestions' method='post' onSubmit='return validateform();' action='$PHP_SELF'>";
while ($inqtype=mysql_fetch_array($result1)) {
//echo "RubrikID: $inqtype[0] = FrågaID: $inqtype[2]<br>";
if ($inqtype[0] == $inqtype[2]) { // kollar så att rubriken och frågan har samma id, om inte så hoppar den vidare till nästa id.
if ($temp != $inqtype[1]) { // Kollar om rubrik redan är utskriven för frågan.
echo "<hr width='400' align='left'>";
echo "<H4>$inqtype[1]</H4>"; // Rubrik
$temp = $inqtype[1];
}
echo "<b>$inqtype[3]</b><br>"; // Fråga
}
else {
continue;
}
if ($inqtype[5] == "alt") { //om det är en alternativ-fråga; skriv ut alternativen
$sql2 = "SELECT * FROM Question_alternative WHERE QID = '$inqtype[4]'";
$result2 = queryDB($sql2, $link);
while ($alternative=mysql_fetch_row($result2)) {
for ($i=2; !empty($alternative[$i]); $i++) { // skriver ut så många alternativ som man har angett för frågan.
$j = ($i - 1);
echo "<input type='radio' name='Alt[$inqtype[4]]' value='alt$j'>$alternative[$i]<br>"; echo "<input type='hidden' name='alt_number' value='$inqtype[4]'>";
}
}
echo "<p>";
}
echo "<input type='submit' name='send' value='Skicka svar'>";
echo "</form>";
Jag skickar med en array i mitt formulär så variablen $value är ju aldrig tom utan har värdet "Array" när jag provar att skriva ut den. Därför sätts $missing aldrig till true. Hur ska jag göra för att lösa detta?