【发布时间】:2015-05-07 18:33:24
【问题描述】:
我有点迷失如何解决我的问题。我有一些关于 PHP 的代码,它通过数组传递数据(错误、页面(id、名称、标题等),并且该数组已使用 parseJSON 设置。如果我提醒响应,我将得到一个具有正确值的数组. 但是我的问题是,响应总是不同的,因此 PHP 变量会发生变化。
我尝试过 responseText.pageid 或 responseText.error[1] 之类的方法,但是因为它可能不同,所以它不起作用。而且我不知道我是否需要调用它 responseText.pageid 因为在数组中它是 $pageid 或不同的东西......
所以警报 responseText 给了我一个很好的结果,但不幸的是,将它分开是行不通的。
我的 JS 代码:
// Variables
var content_page = $('#content-page').val();
var content_url = 'action=chose&page='+content_page;
/* Starting AJAX post form */
$.ajax({
type: 'POST',
dataType: "JSON",
url: 'handlers/content.handler.php',
data: content_url,
success: function(responseText)
{
var obj = $.parseJSON(responseText);
console.dir(obj.error);
if(obj.error[1] > -1)
{
noty({ text: 'U hebt geen pagina gekozen!' });
}
else if(obj.error[2] > -1)
{
noty({ text: 'De gekozen pagina bestaat niet!' });
}
else if(obj.error[100] > -1)
{
noty({ text: 'Uw pagina wordt opgehaald...' });
}
}
});
return false;
});
我的 PHP 代码:
// Storing the variables.
$stringPage = trim($_POST['page']);
$error = array();
$bolean = false;
// Prepared statement.
$stmt = $mysqli->prepare('SELECT id,name,title,text FROM pages WHERE name = ?');
$stmt->bind_param('s', $stringPage);
$stmt->execute();
$stmt->store_result();
$stmt->bind_result($pageID, $pageName, $pageTitle, $pageText);
$stmt->fetch();
$intPage = $stmt->num_rows();
$stmt->close();
# Controle
if(empty($stringPage))
{
$error[] = 1;
$bolean = false;
}
if($intPage == 0)
{
$error[] = 2;
$bolean = true;
}
if($bolean == false)
{
$error[] = 100;
}
header('Content-Type: application/json');
$aVariables = array('error' => $error, 'id' => $pageID, 'name' => $pageName, 'title' => $pageTitle, 'text' => $pageText);
echo json_encode($aVariables, JSON_FORCE_OBJECT);
我用谷歌搜索并得出结论,我需要从 parseJSON 中创建一个变量,但不幸的是我没有得到任何结果。我当前的结果 (http://prntscr.com/72c39h) 可以正常工作,但将其与 responseText.home 分开不起作用。
提前感谢您,对于糟糕的语法和语言,我深表歉意!
【问题讨论】:
-
屏幕截图中的警报显示您处理的不是 JSON 数据,而是一个字符串。例如,如果你想将这些值分成一个数组,你可以
var separated = responseText.split(','); console.log(separated) -
感谢@azium 的帮助。我已经尝试过了,现在已经用工作数组和 parseJSON 更新了我的 PHP 和 JS。但现在 var obj 无法读取,并给我 null 作为返回。对此有什么想法吗?再次感谢您的帮助!
标签: javascript php jquery ajax json