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

我有一个页面,我使用load来加载对话框。 从那个对话框中,我有jQuery在那里发布ajax请求到PHP脚本。 一切正常。 从PHP我回显结果并尝试从这个加载的对话框中捕获done回调 – 但它不起作用。 它更新了数据库,但我无法捕获回声。 这适用于我网站的其他地方,但我不能在这里工作。 我认为这可能与这个来自“加载”对话框的事实有关? 任何帮助,将不胜感激。

原始页面上的代码启动加载…

 $('#edit_cats').click(function() { $('#overlay').show(); $("#loader4").show().center(); $('#dialogLoad').show().load('../../dialog/categories.php', {'site_user':'','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代码

  

您没有在响应中发送json,因此dataType: "json"不正确,删除dataType属性应该可以解决您的问题。 你也没有消毒你的输入,所以你对sql注入开放。