从 jQuery 读取只有一个对象的 JSON 数组的值
Read from jQuery the value of a JSON array that only has an object
我有一个jQuery和一个PHP文件。如果在 PHP 中该过程正确完成,则返回 2(通过回显 json_encode(2))。我在jQuery文件中捕获了它,并在HTMdiv上显示了一个字符串。我可以毫无问题地完成这部分。
对我来说困难的事情是将 erorr 返回到 ajax,当它发生时,显示在 HTMLdiv 上。我想返回一个 JSON 数组 {"error": "xxx"},其中"xxx"是 php 生成的错误。
所以问题是我无法获得"错误"键的值来显示它。我在网站上读了很多类似的主题,但它们是关于读取多个对象的值。
j查询文件:
$('#log').submit(function(event) {
event.preventDefault();
var stuff = $(this).serializeArray();
stuff.push({name:'tag', value:'login'});
$.ajax({
url: './php/logreg.php', //Como si fuera el action del form
type: 'post', //Por defecto es get
dataType: 'json',
data: stuff,
beforeSend: function(){
$('#span-login-icon').css('display','inline');
}
})
.done(function(data){
if(data == 2){
$('#span-login-resp').html('Correcto');
}
else{
$('#span-login-resp').html(data);
}
});
});
PHP文件:
if($object->queError() === ''){
echo json_encode(2);
}
else{
echo json_encode('{"error"'.':"'.$object->queError().'"'.'}'); //output: {"error":"xxx..."}
}
返回错误的代码正在对字符串调用json_encode
,这可能不是您想要的,因为您最终将返回 JSON 字符串文本,而不是其中文本定义的对象。
也就是说,您当前正在返回此 JSON:
"{'"error'":'"something went wrong'"}"
您可能希望返回此 JSON 的位置:
{"error":"something went wrong"}
您可能希望:
else {
echo json_encode(array(
'error' => $object->queError()
));
}
(手动构建 JSON 字符串几乎总是不是您的最佳选择。
然后在您的ajax
回调中
.done(function(data) {
if (data == 2){
$('#span-login-resp').html('Correcto');
}
else {
$('#span-login-resp').html(data.error);
// ^^^^^^---------------- Note
}
});
或者可能:
.done(function(data) {
if (data && data.error){
$('#span-login-resp').html(data.error);
}
else if (data == 2) {
$('#span-login-resp').html('Correcto');
}
else {
$('#span-login-resp').html('Ocurrió un error inesperado');
}
});
或者,为了与成功返回的样式保持一致(只是数字 2),您可以只返回一个字符串:
echo json_encode('error: ' . $object->queError());
然后
.done(function(data) {
if (data == 2){
$('#span-login-resp').html('Correcto');
}
else {
$('#span-login-resp').html(data);
}
});
FWIW,即使不再需要它,我也可能会返回一个带有 error
属性(包含错误)或 result
属性(包含 2)的对象。
试试这个:
PHP最后一行:
echo json_encode( array("error" => $object->queError()) );
JS最后一行:
$('#span-login-resp').html(data.error);
相关文章:
- 需要帮助设置json数组
- 如何使用 node.js 比较两个 json 数组
- 根据id将json数组组合为一个json数组
- 如何创建JSON数组
- 如何将package.json数组传递给grunt.js
- 访问json数组中的对象
- JSON数组数据返回Undefined
- 如何向JSON数组动态添加属性
- 如何从json数组中获取特定值
- 从多维嵌套json数组创建下拉列表
- 在ListView中添加JSON数组中存储的图像-ReactNative
- jquery在json数组中循环
- 将 JSON 数组解析为 JavaScript 数组
- 如何在php中读取没有任何键的JSON数组
- 如何在Jquery中迭代JSON数组
- 如何在cycle js中从JSON数组创建组件
- 如何使用jquery返回php-json数组对象
- JSON数组转换为JS对象数组
- 使用System从C#集合创建JSON数组.网状物剧本序列化
- 使用Underscore.js修改json数组中所选元素的更有效方法