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). まず、データ型を何に設定すればよいかわからない場合dataTypeは、省略してください。undefined次に、メソッド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

jQueryの.serialize()メソッドを使用してフォームデータを送信できます

あなたがそれを理解するためのいくつかの素晴らしいリンクを以下に示します

jquery form.serialize およびその他のパラメーター

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

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

于 2013-03-25T18:31:24.783 に答える
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 に答える