0

ファイルを作成する必要があります。そのうちの1つでは、Javascriptを使用してもう1つを呼び出します。

$(document).ready(function() {
  $('#dataBox').load('/example/data.php?id=' + '123');
});

次に、データはID「dataBox」で私のdivにうまく表示されます。ここまでは順調ですね。

ただし、データベースから照会される各データのdata.phpファイルには、フォームがあります。テキストフィールドと送信ボタンだけのシンプルなフォーム。このフォームはPOSTを使用してデータを送信し、最初のファイルは。を使用してそれらの値を取得します$_POST。データを取得するコードを別のファイルに移動する前は、これは機能しません。すべて正常に機能しました。フォームアクションパラメータはに設定され$_SERVER["REQUEST_URI"]ます。Google Chromeの開発者が物事を検査することで、値がdata.php?id = '123'に送信されることを確認できますが、これはそれほど奇妙なことではありません。そのため、POST値を取得するすべてのコードをdata.phpファイルに移動することを考えました。それもうまくいかないようですが。[送信]を押してもページが更新されないようです。

編集:

<form ..some code .. /> instead of just <form ..some code .. >送信ボタンが「機能」し、値が送信されるように書いたことに気づきました。$_SERVER["REQUEST_URI"]アクションパラメータとして、jQueryがロードされたページに移動しますが。ファイルをロードしたページに移動するようにする必要があります。

4

3 に答える 3

1

新しいページをロードするときに、jquery関数を再初期化する必要があります。次のように再初期化しない限り、Jqueryはそれが存在することを認識しません。

$(document).ready(function() {
  $('#dataBox').load('/example/data.php?id=' + '123', function(){
      reinit();
  });
});

function reinit() {
  $('#dataBox form').submit(function(){
    var formData = $(this).serialize();
    $.ajax({
        type: "POST",
        url: 'myProcessingPage.php',
        data: formData,
        success: function (data) {
            alert('success');
        },
        error: function (data) {
            alert('error');
        }
    });
  });
}

注:このコードは、本番用ではなく、どのように機能するかを示すためのものです。

于 2012-08-16T17:14:01.820 に答える
0

Aaaaand ...解決しました!

しかし、すべてのあなたの助けに感謝するように$_SERVER["REQUEST_URI"]変更されました!$_SERVER["HTTP_REFERER"]何が悪かったのか、そして物事がどのように機能するのかを理解させてくれました。:)

于 2012-08-16T18:31:44.763 に答える
0

jQuery(1.7.2)ソリューション(これは完全ではありません。必要に応じて変更する必要があります。標準のフォーム送信を使用せずにdata.phpに投稿する別の方法を指摘しているだけです):

$(document).ready(function() {
  // Like you already have, load the form stuff on document ready
  $('#dataBox').load('/example/data.php?id=' + '123');
  // Now, let's hook a submit event up to your submit buttons - we'll attach it to dataBox so 
  // you wont have to bind it again:
  $("#dataBox").delegate("submit","FORM",function(e){
     // Prevent the form from submitting
     e.preventDefault();
     // Do the submission
     $.post("data.php",{id:"123"},function(result){
        // Now you can do whatever you want with result, as it
        // contains everything that data.php returned.
     });
  });
});
于 2012-08-16T18:00:18.510 に答える