jQuery加载对话框AJAX'完成'捕获回显结果

时间:2013-01-10 20:10:10

标签: jquery ajax load jquery-callback

我有一个页面,我使用load加载对话框。从那个对话框中,我在那里有一个jQuery向PHP脚本发布一个ajax请求。一切正常。从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'];

?>

1 个答案:

答案 0 :(得分:3)

您没有在回复中发送json,因此dataType: "json"不正确,删除dataType属性应解决您的问题。此外,您还没有对输入进行消毒,因此您可以使用sql注入。