2

通常、私はjfGitの大物ですが、Web全体を調べていて、このコードを機能させることができません。

私のセットアップ:

  • index.php-mysqlデータベースからのデータが入力されたテーブルを含むページ。
  • update.php-htmlでテーブル行を出力できるphpスクリプト

目的

私がしたいこと:リンクまたはボタンをクリックすると、特定のテーブル行が更新されます。

現在のソリューション

これは私がこれまで試したコードです。

bodyタグのすぐ下にあるAjax/jQueryコード(これは正しい場所ですか?):

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
<script>
$(document).ready(function(){
$('a.pop').click(function() { 
var popID = $(this).attr('rel');
$.ajax({
        url: 'update.php',
        method: 'GET',
        data: 'userID=' + popID,
        success: function(returnData){
             $(popID).html(data);
              $(popID).dialog();
              alert('Load was performed.');
        }
    });
});
});
</script>

そしてテーブルコード(phpを使用して印刷):

echo "<div id=\"$ID\">";
// all tr + td from table
echo "<td><a href=\"#\" id=\"clickingEvent\" class=\"pop\" rel=\"$ID\">Update</a></td>\n";
echo "</tr>\n";
echo "</div>";

結果

現在、結果はまったく得られません。AJAXはphpページをロードしていません。更新ボタンをクリックしても何も起こりません。

どんな助けでも大歓迎です、前もってありがとう:)

編集:

部分的な解決策

コードのAjax部分が正しく機能するようになりました。これは、すべての入力に感謝します。

ただし、テーブルタグの前に新しい行が追加され、古い行が残ります。生成されたソースを見ると、指定した'popID'のdivIDを持つ新しい行があることがわかります。下にスクロールすると、古い行のdivタグが削除されたように見えます。

どうすればそれを解決できますか?

4

4 に答える 4

2

取得したデータをpopIDに追加する必要があることに注意してください。正しい方法は、関数を次のように変更することです。

$.ajax({
        url: 'update.php',
        method: 'GET',
        data: 'userID=' + popID,
        success: function(new_data){
             $(popID).html(new_data);
              $(popID).dialog();
              alert('Load was performed.');
        }
    });

returnDataはnew_dataになり、同じ名前で追加することに注意してください

于 2012-04-24T11:33:42.827 に答える
2

ajax関数を次のように置き換えてみてください。

$.get('update.php',{userID: popID}, function(data) {
       $("#" + popID).html(data);
       $("#" + popID).dialog();
       alert('Load was performed.');
});

さらに、の代わりに$("a.pop").click(...)、次を使用します。$(document).on('click', 'a.pop', function () { ...});

これにより、同じjQueryイベントを返す新しいボタンが表示されます

于 2012-04-24T11:34:23.543 に答える
0

する必要があり$(popID).html(data);ます$(popID).html(returnData);か?それともタイプミスですか?

于 2012-04-24T11:34:37.897 に答える
0

あなたがあなたの中にいるならupdate.php

  1. SQLUPDATEステートメント
  2. ajaxでクエリすると、DBはMySQLです
  3. 変更せずにレコードを更新しようとします(つまり、同じデータで行を更新するだけです)

UPDATE次に...サーバー側スクリプトに特別なステートメントがあるajaxクエリの超超奇妙なバグであるため、更新するものは何も取得しないでください。ただし、保存(更新)する前にデータに変更を加えると機能します。

Use `REPLACE` statement instead.

私はこの解決策を何度も探しましたが、本当に多すぎました。また、スクリプト全体を独自のパラメーターでデバッグすると、すべて正常に機能するため、なぜそれが発生するのか理解できません。

于 2016-10-30T11:28:12.333 に答える