webForumDet fria alternativet

Kolla så att alla fält är ifyllda

PHP

1 svar · 329 visningar · startad av no12

Medlem sedan sep. 200240 inlägg
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?

Medlem sedan feb. 200399 inlägg
#2
foreach ($HTTP_POST_VARS['Alt'] as $key => $value)
257 ms totalt · 4 externa anrop · v20260731065814-full.86ec41c2
132 ms — deklarationer (db)
0 ms — hämta statistik (cache)
123 ms — hämta tråd, inlägg och bilagor (db)
132 ms — ändringar (db)