簡體   English   中英

使用AJAX進行問題發布

[英]Trouble POSTing form with AJAX

編輯-信息似乎正在發布,但是在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);
   }
?>

您提交表單是因為您遇到錯誤,導致阻止提交表單的代碼無法運行。 具體來說是dataType: dataTypethis.html(data) 首先, dataTypeundefined ,如果您不知道如何設置數據類型,則將其忽略。 其次, this是指沒有html方法的form元素,您可能的意思是$(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();
    ...
});

您可以使用jQuery的.serialize()方法發送表單數據

以下一些不錯的鏈接供您了解

jQuery form.serialize和其他參數

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

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

一種處理方式...

取消通常的表單提交:

$("#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;
});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM