2

ajax / jsonスクリプトを機能させようとしています。stackoverflowを調べましたが、役立つと思われるものが見つかりません。基本的に私がやろうとしているのは、ユーザーが送信ボタンをクリックしたときです。非表示の入力値は、ajaxを介して別のphpスクリプトに送信され、そこで変更されます。その後、ajaxを介して返送され、内部に表示されます。応答を介してdiv、私は私が間違っていることを確信していません。

現時点では、何も出力も出力もありません。

私はすべての助けに感謝して、私が以下に与えるコードで可能な限り徹底的にしようとします。

メインページのAJAXスクリプト

<script>
$(document).ready(function () {
  $(".add_detail_land_down").click(function () {
    var hidden_count = $('input[name=addon_detail_hidden_count]').val();
    $.ajax({
      type: "GET",
      url: "ajax_script.php",
      data: {
        hidden_count: hidden_count
      },
      dataType: "json",
      statusCode: {
        success: function (data) {
          $("#total_hidden").html(data.total_hidden);
        }
      }
    });
  })
});
$(".add_detail_land_down").click();
</script>

メインページのフォームヘッド(念のために追加したほうがいいと思います)

<form action="" method="post">

メインページの非表示の入力

<input type="hidden" name="addon_detail_hidden_count" id="addon_detail_hidden_count" class="addon_detail_hidden_count" value="1" />

メインページでajaxプロセスを開始するための送信ボタン

<input name="add_detail_land_down" type="submit" class="add_detail_land_down" value="add_detail_down"/>

ajax_script.phpのコード

    <?php 

$hidden_count = $_GET["hidden_count"];

$hidden_count = $hidden_count + 1;
include 'connect_to_mysql.php';

echo json_encode(array("total_hidden" => $hidden_count ));

 ?>

ありとあらゆる助けをありがとう

4

4 に答える 4

3

なぜsuccess callback内部のstatusCodeをネストしているのですか

察するに

dataType: "json",
success: function (data) {
    $("#total_hidden").html(data.total_hidden);
}

また

成功の代わりにステータスコード200を使用する

dataType: "json",
statusCode: {
     200 : function (data) {
          $("#total_hidden").html(data.total_hidden);
     }
}
于 2012-11-20T21:59:07.947 に答える
1

言及された他のすべての問題の中で:statusCode/success構文の問題、およびdocument.readyあなたのクリックtrigegr outlsdeはまた、フォームのブラウザのデフォルトの送信を防ぐ必要があります。

現在、送信するとページが更新される可能性があります...通常のブラウザの動作。

falseクリックハンドラーでは、戻るか使用してこれを防ぐ必要がありますpreventDefault()

$(".add_detail_land_down").click(function (event) {

   /* use either of these */

   /* before your ajax code */
    event.preventDefault();

    /* or after your ajax code*/

     return false;

})
于 2012-11-20T22:09:59.957 に答える
0

statusCodeは数値であり、あなたの場合は次のように200変更するsuccess必要があります200

statusCode: {
    200: function (data) {
        $("#total_hidden").html(data.total_hidden);
    }
}
于 2012-11-20T21:59:38.473 に答える
0

成功のコールバックは次のように指定する必要があります(200だけを気にする場合):

success: function (data) {
    $("#total_hidden").html(data.total_hidden);
}

また、要素で実行しようとしている場所はclick()、ドキュメントが読み込まれる前に実際に発生する可能性があるため、onclickハンドラーの準備ができる前に実行されます。ドキュメントの準備ができたときに自動的に起動する場合は、onclickの後にドキュメントの準備ができている必要があります。

于 2012-11-20T22:03:04.837 に答える