0

作成中のフォームでいくつかの問題が発生しています。このコードでデータを処理するための PHP スクリプトにフォームを投稿するコードがあります。

<script type="text/javascript">
 $(document).ready(function()
 {
  $("#submit").click(function() 
  {
   var q1 = $("#q1").val();
   var q2 = $("#q2").val();
   var answers = "page=1&q1="+q1+"&q2="+q2;

   $.ajax({
    type:'POST',
    url:'add.php',
    data:answers,
    success:function(response)
    {
     $("#answers").html(response);
    }
   });
  });       
 });
</script>

このフォームは、PHP スクリプトで次のように受信されます。

$page = $_POST['page'];
$q1 = $_POST['q1'];
$q2 = $_POST['q2'];
echo "Page: " .$page . "<br/>Question 1: " . $q1 . "<br/>Question 2: " . $q2;

すべての問題は、このフォームが X 量の入力を処理できるようにし、名前がわからない入力も処理できるようにすることです。5 つのテキスト ボックス、または 2 つのテキスト ボックス + 一連のラジオボタンなどを取得できます。すべての $_POST データを収集し、それを分解する方法など、データベースの準備を整える方法はありますか? すべての質問 ID (値) とすべての回答値 (ラジオボタン ID を表す文字列または整数) を復元したいと考えています。

4

3 に答える 3

4

POST および GET を配列として扱うだけで、すべての POST および GET 要求パラメーターを反復処理できます。例:

print_r($_POST);

または:

foreach ($_POST as $key => $value) {
    echo $key." = ".$value."<br>";
}

変化する量の入力フィールドを処理したい場合は、増分命名規則を定義し、ループを使用してそれらすべてを配列に集めることができます。

于 2012-07-13T08:02:04.380 に答える
2

print_r($_POST); すべての値を見ることができます。

またはこのようなもの:

foreach ( $_POST AS $key => $value) {
echo $key." => ".$value."<br>";
}
于 2012-07-13T08:04:08.847 に答える
1

最初: jQuery にデータ文字列を作成させます。現在の方法では、各フィールドを事前に知る必要があり、特殊文字を含むデータを処理することはできません。

url:'add.php',
data: $('#myForm').serialize(),
success:function(response)

2 番目: PHP の複数のフィールドを同じ命名規則で使用して、フィールドに名前を付けます。

<input type="radio" name="answer[1]" value="foo">
<input type="radio" name="answer[1]" value="bar">

その後、次のようにアクセスできます。

$_POST['answer'][]

これは配列なので、「1」と「foo」または「bar」をループで取得できます。

于 2012-07-13T08:04:36.523 に答える