0

loadダイアログボックスをロードするために使用するページがあります。そのダイアログ ボックスから、PHP スクリプトに ajax リクエストを送信する jQuery が表示されます。これはすべてうまくいきます。PHPから結果をエコーアウトし、doneこのロードされたダイアログからのコールバックでそれをキャッチしようとしますが、機能しません。データベースを更新しますが、エコーをキャッチできません。これは私のサイトの他の場所では機能しますが、ここでは機能しません。これが「ロードされた」ダイアログから来ているという事実と関係があるのではないかと思いますか? どんな助けでも大歓迎です。

読み込みを開始する元のページのコード...

$('#edit_cats').click(function() {
   $('#overlay').show();
   $("#loader4").show().center();
   $('#dialogLoad').show().load('../../dialog/categories.php', {'site_user':'<?=$user_id?>','id':'<?=$blog['id']?>'});
});

読み込まれたダイアログの AJAX コード

$('.cat_input').bind('blur keyup', function(e) {
   if(e.type === 'keyup' && e.keyCode !== 10 && e.keyCode !== 13) return;
   $(this).hide();
   var cat_title = $(this).val();
   var cat_id = $('.cat_selected').attr('id');

   $.ajax({
      type: "POST",
      url: "../../system/process-cat-update.php",
      dataType: "json",
      data: { 'title':cat_title, 'cat_id':cat_id}
   }).done(function(data) {
      $('.cat_selected').find('.cat_title').html(data).show();
   });
});

PHP コード

<?php 

include ('connect.php');
mysql_query("UPDATE blog SET category='".$_POST['title']."' WHERE id='".$_POST['cat_id']."' ");
echo $_POST['title'];

?>
4

1 に答える 1

3

応答でjsonを送信していないためdataType: "json"、正しくありませんdataType。プロパティを削除すると問題が解決するはずです。また、入力をサニタイズしていないため、SQL インジェクションに対してオープンです。

于 2013-01-10T20:17:41.070 に答える