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 的字符串或 int)。

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)

第二:使用具有相同名称约定的 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 回答