2012-01-13 13 views
-2

// Hy..Iは、次のコードを持っている:PHPのテキストボックスのコードで何が間違っていますか?

mysql_select_db("baza_chestionar", $con); 

$result = mysql_query("SELECT intrebari.descriere_intrebare,intrebari.nume_admin,intrebari.id_chestionar FROM intrebari WHERE intrebari.nume_admin='".$_SESSION['nume_admin']."' AND intrebari.id_chestionar='".$_SESSION['nr_chestionar']."' "); 

$i=0; 
while ($row = mysql_fetch_array($result)) 
    { 
    $i++; 
    echo $i.")&nbsp". $row['descriere_intrebare']; 
    echo "<br><br>"; 
    echo "<form method='POST' action='selectare_raspuns.php' id='myform' > 
     <input type='text' size='30' name='intrebare[]'> 
     </form>  "; 
    echo "<br><br>"; 

    } 

echo "<input type='submit' value='Salveaza raspunsuri' onclick='myform.submit()'/>"; 
mysql_close($con); 

//これはテーブルからいくつかのデータを選択し、それを表示し、各データテキストボックスのために。テキストボックスからデータを取り出し、別のテーブルに挿入する別のページがあります。

foreach($_POST['intrebare'] AS $textbox) 
{ 
    $sql="INSERT INTO raspunsuri values ('','$textbox')"; 
    var_dump($sql); 
    if (!mysql_query($sql)) 
     { 
     die('Error: ' . mysql_error()); 
     } 
    echo "1 record added"; 
} 

//ただし、最初のテキストボックスの最初の値のみが挿入されます。私は間違って何をしていますか?テキストボックスの名前を配列として宣言しました。foreachステートメントでループします。

答えて

1

myformフォームもループしています。 FORMタグはwhileループから取り出され、送信ボタンはフォームタグ内にある必要があります(JSなしで使用できるように)。また、あなたのPOSTデータをprint_rするだけで、そこにデータがあることを確認できます。

+0

。配列としての名前は何を達成するのですか?ありがとう。 – Andy

+0

投稿するデータを配列として扱うことができます。これは、チェックボックスがあり、クリックされたすべてのチェックボックスを操作する場合に特に便利です。それぞれに名前(間違った方法)を与えることもできますし、配列として扱い、サーバー側でループすることもできます。 – JohnP

+0

この場合、各テキストボックスのテキストは、0から最後のものまで、intrebare []の次の利用可能なインデックスに入れられますか? – Andy

1

あなたの問題は、あなたのページに複数のフォームタグを使用していることです。したがって、1つの値のテキストボックスのみが2番目のページに送信されます。 whileループの前にformタグを宣言し、ループの後でタグを閉じる必要があります。

+0

クイックレスポンスをお寄せいただきありがとうございます。それはうまく動作します...たくさんありがとう:) – user1147188

1

あなたのフォームタグはループ内にエコー表示されます。プットは外です。 具体的にname属性を持つ:あなたはこの部分が動作します誰に手の込んだことができ、これについてしっかり理解しているように見える

echo "<form method='POST' action='selectare_raspuns.php' id='myform' >\n"; 
while ($row = mysql_fetch_array($result)) 
{ 
     $i++; 
     echo $i.") ". $row['descriere_intrebare'] ."<br /><br /><input type='text' size='30' name='intrebare[]'><br /><br />"; 
} 
echo "<input type='submit' value='Salveaza raspunsuri' name="submit" />\n"; 
."</form>\n"; 
+0

クイックレスポンスの皆さん、ありがとうございます。 – user1147188

関連する問題