jQuery加载的对话框AJAX“完成"捕获回显结果 [英] jQuery loaded dialog AJAX 'done' catch echoed result

查看:202
本文介绍了jQuery加载的对话框AJAX“完成"捕获回显结果的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个页面,在其中我使用load加载对话框.在该对话框中,我有jQuery,可将ajax请求发布到PHP脚本.这一切都很好.从PHP中,我回显了结果,并尝试从此已加载对话框的done回调中捕获该结果-但它不起作用.它更新了数据库,但是我听不到回声.这可以在我网站的其他地方使用,但是我无法在这里使用它.我认为这可能与已加载"对话框有关?任何帮助将不胜感激.

I have a page where I use load to load a dialog box. From that dialog box, I have jQuery in there that posts an ajax request to a PHP script. This all works fine. From the PHP I echo out the result and attempt to catch that on the done callback from this loaded dialog - but its not working. It updates the database, but I can't catch the echo. This works elsewhere in my site, but I can't get it working here. I think it might have something to do with the fact that this is coming from a 'loaded' dialog? Any help would be appreciated.

原始页面上的代码开始加载...

Code on original page initiating the load...

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

已加载对话框中的AJAX代码

AJAX code in the loaded dialog

$('.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'];

?>

推荐答案

您没有在响应中发送json,因此dataType: "json"是不正确的,删除​​dataType属性应该可以解决您的问题.另外,您不会对输入内容进行清理,因此可以进行sql注入.

You aren't sending json in your response so dataType: "json" is incorrect, removing the dataType property should fix your problem. Also you aren't sanitizing you input so you are open to sql injection.

这篇关于jQuery加载的对话框AJAX“完成"捕获回显结果的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆