ajax正在生成?
我从我的ajax响应中得到一个[object object]。
$.ajax({ type: "GET", data: "id_1="+id_1+"&id_2="+id_2, url:"ajax/url.php" }).done(function(data){ var left= $(data).find("#left"); $("#left").html(left); alert(left); });
在我的url中,我只是简单的编码
if(isset($_GET["id_1"]) && isset($_GET['id_2'])){ $id_1 = $_GET["id_1"]; $id_2 = $_GET['id_2']; $right= $dbh->prepare("SELECT COUNT(*) FROM table WHERE id_1 = ?"); $right->execute(array($id_1)); $left= $dbh->prepare("SELECT COUNT(*) FROM table WHERE id_1 = ? "); $left->execute(array($id_2)); fetchColumn();?> fetchColumn();?> }
当我完成所有操作后,它会回复[对象对象]
有谁知道它为什么这样做?
谢谢!
编辑:
我在.done中添加了一些编码(function())
data
是一个对象。 [object Object]
只是对象的toString()
响应。
您需要访问对象的数据。 尝试使用console.log(data)
检查其内容。
从您的PHP示例看起来您没有按原样提供代码。 您发布的代码将是语法错误。
另外,请检查响应的MIME类型。 您可能希望将dataType
强制为html
。
我已经解决了我的问题。 问题是我需要把我的div包装在另一个中。 之后,find()方法将能够捕获这些id并返回正确的对象。
if(isset($_GET["id_1"]) && isset($_GET['id_2'])){ $id_1 = $_GET["id_1"]; $id_2 = $_GET['id_2']; $right= $dbh->prepare("SELECT COUNT(*) FROM table WHERE id_1 = ?"); $right->execute(array($id_1)); $left= $dbh->prepare("SELECT COUNT(*) FROM table WHERE id_1 = ? "); $left->execute(array($id_2)); // wrapper fetchColumn();?> fetchColumn();?> }
你得到一个对象,而不是一个简单的字符串…看起来“数据”将包含你的页面“url.php”的响应你想在真实的应用程序中使用“数据”做什么? 我假设警报只是一个调试措施?
你在哪里创建你的JSON响应? 我假设它是fetchColumn()方法。 仔细检查以确保您正在准备json_encode()正确…
当你抛弃一切时你会得到什么?
var_dump( $right ); var_dump( $down ); var_dump( $right->fetchColumn() ); var_dump( $down->fetchColumn() );
试试..
$response = ""; $response .="".$right->fetchColumn().""; $response .="".$down->fetchColumn().""; echo $response;exit;
- 尝试通过AJAX提交时,%5Bobject%20Object%5D(404 not found)
- bind(this)不能在ajax成功函数上工作
- 如何调用jquery ajaxStart + ajaxComplete
- Rails Ajax Render Partial(投票系统)
- jquery / ajax在可用时加载新内容
- 如何使用Access-Control-Allow-Origin:https://www.example.com?
- 如何在asp.net web应用程序的不同目录下从jQuery ajax引用http处理程序文件
- 如何在PHP脚本中访问从jQuery.ajax()的HTML页面传递的表单数据的各个值?
- jQuery Ajax工具提示