0

编辑 - 信息似乎正在发布,但在 form_data.php 上似乎没有检索发布的值

这是AJAX

<head>
    <script src="http://code.jquery.com/jquery-1.9.1.js"></script>
    <script>

    $("#submit_boxes").submit(function() { return false; });
    $('input[type=submit]').click(function() {
        $.ajax({
              type: 'POST',
              url: 'form_data.php',
              data: $(this).serialize(),
              success: function(data) {
                $('#view_inputs').html(data); //view_inputs contains a PHP generated table with data that is processed from the post. Is this doable or does it have to be javascript?
       });
       return false;
        });
   };
  </script>
</head>

这是我要提交的表格

 <form action="#" id = "submit_boxes">
        <input type= "submit" name="submit_value"/>
        <input type="textbox" name="new_input">
 </form>

这是获取发布到的信息的 form_data 页面

<?php
    if($_POST['new_input']){
      echo "submitted";
      $value = $_POST['new_input'];
      $add_to_box = new dynamic_box();
      array_push($add_to_box->box_values,$value);
      print_r($add_to_box->box_values);
   }
?>
4

3 回答 3

1

您的表单正在提交,因为您有错误阻止阻止表单提交的代码运行。具体dataType: dataTypethis.html(data)。首先dataTypeundefined,如果您不知道要设置什么数据类型,则将其排除在外。其次this是指没有html方法的表单元素,您可能的意思是$(this).html(data)虽然这不太可能是您想要的,但很可能是$(this).serialize()您想要的。所以你的代码应该看起来像

$('form#submit_boxes').submit(function() {
    $.ajax({
        type: 'POST',
        url: 'form_data.php',
        data: $(this).serialize(),
        success: success
    })
    return false;
});

此外,如果您必须在表单提交处理程序中调试 ajax,您要做的第一件事就是阻止表单提交(返回 false 只能在最后完成),这样您就可以看到发生了什么错误。

$('form#submit_boxes').submit(function(event) {
    event.preventDefault();
    ...
});
于 2013-03-25T18:59:04.917 回答
0

处理它的一种方法...

取消通常的表单提交:

$("#submit_boxes").submit(function() { return false; });

然后为您的按钮分配一个点击处理程序:

$('input[type=submit]').click(function() {
            $.ajax({
                  type: 'POST',
                  url: 'form_data.php',
                  data: this.html(data),
                  success: success,
                  dataType: dataType
           })
           return false;
});
于 2013-03-25T18:42:11.400 回答
0

可以使用 jQuery 的.serialize()方法发送表单数据

下面的一些不错的链接让您了解

jquery form.serialize等参数

http://www.tutorialspoint.com/jquery/ajax-serialize.htm

http://api.jquery.com/serialize/

于 2013-03-25T18:31:24.783 回答