使用serializeArray()从name属性获取信息到$ _POST []

时间:2014-02-21 08:24:43

标签: php jquery post

我想在PHP文件中获得类似$aentry = $_POST[a]的内容,这样我就可以回显用户输入到页面的输入。我想通过使用serializeArray()来实现它,因为这就是我正在学习的东西。

这是表单的示例代码:

<div><input type="text" name = "a" value = "1" id = "a"></div>
<div><input type="text" name = "b" value = "2" id = "b"></div>
<div><input type="hidden" name = "c" value = "3" id = "c"></div>
<div>
    <textarea name="d" id="" cols="40" rows="8">4</textarea>
</div>
<div><select name="e" id="">
    <option value="5" selected = "selected">5</option>
    <option value="6">6</option>
    <option value="7">7</option>
</select>
...

根据我对PHP的了解,为了获得用户输入的信息,您需要执行以下操作:

<?php 
 $aentry = $_POST[a]
 echo $aentry 
?>

我了解到,通过使用serializeArray(),您可以以数组/对象格式获取表单缓动器中的所有信息,并且可以使用它来设置超级全局数组。我不知道该怎么做。

到目前为止,我得到了这个:

$( "form" ).submit(function( event ) {
  var data =  JSON.stringify($(this).serializeArray());
    $('.result').html(data);
  event.preventDefault();
});

我得到了这个输出:

[{"name":"a","value":"1"},{"name":"b","value":"2"},{"name":"c","value":"3"},{"name":"d","value":"4"},{"name":"e","value":"5"}]

如何设置它以便像$aentry = $_POST[a]一样使用它,我可以使用$aentry来处理PHP,就像我上面解释的那样?我也想使用其他输入信息。如果你能告诉我那些令人敬畏的代码。 对不起,如果这听起来像一个愚蠢的问题,我是新来的。

我想我不会需要“value”键,因为我觉得我只对name属性感兴趣,因为这是php使用的

1 个答案:

答案 0 :(得分:1)

使用jQuery AJAX向您发送数据。这是网址:https://api.jquery.com/jQuery.ajax/ 编辑:

这里有一个可以使用的代码

$( "form" ).submit(function( event ) {
  var data =  $(this).serializeArray();
              $.ajax({
                type: 'post',
                url: 'page.php',
                data: data,
                success: function (data) {
                  $('.result').html(data);
                }
            });

  event.preventDefault();
});

当您发布表单时,它会将发布值发送到page.php(更改为您自己的页面),然后将其发布到那里。

编辑:

如果您将此代码添加到page.php,它将返回帖子值:

<?php 
   print_r($_POST);
?>

您可以使用开发人员工具[标签网络](在Chrome中)查看AJAX提交