我无法获得预期的结果。
我有以下jQuery脚本:
// obj is the return result of another query
jQuery.post("mypath/include/jquery_bll.php", { instance: 'controllAccess', brandID: obj.id },
function(data)
{
if (jQuery('#brand_selectList').length == 0)
{
if (data == "Locked")
{
jQuery('#countryListBox').attr('disabled','true');
}
}
}, "text");
这样做,如果返回结果=“已锁定”,则禁用选择框。
这是我的PHP代码,它返回结果:
function controllBrandRelation($dal)
{
// Get label data.
$result = $dal->getRowByValue('myTable','id', $_POST['someID']);
if (mysql_num_rows($result) > 0)
{
while ($row = mysql_fetch_array($result))
{
$ownerID = $row["fk_userID"];
}
}
if(!empty($ownerID))
echo 'Locked';
else
echo 'Open';
}
如果$ ownerID有一些值,这将返回'已锁定'。
这是我的问题:
如果我做alert(data.length)
,我得到结果72.我真的应该得到6,这是“锁定”一词中的字符数。
jQuery.post("mypath/include/jquery_bll.php", { instance: 'controllAccess', brandID: obj.id },
function(data)
{
alert(data.length);
}
如果我执行alert(jQuery.trim(data).length)
,我会得到正确的值。
但无论我做什么,我都无法进入IF测试:
if (data == "Locked")
{
jQuery('#countryListBox').attr('disabled','true');
}
为什么数据不等于“锁定”?
我已经使用修剪版和未修剪版进行了测试。
更新
我已经设法通过将文本的返回结果更改为json来实现它。
所以现在我查看是否(data.status == "locked")
,它运行正常。
但是我真的想知道文本的返回结果是多少76个字符,当它应该是6时。为什么我无法匹配/测试结果。
答案 0 :(得分:0)
首先,在您将返回值回显给AJAX调用函数后,我不确定您是否正在终止脚本。您可以通过执行以下操作来解决这个问题:
function controllBrandRelation($dal) {
// Get label data.
$result = $dal->getRowByValue('myTable','id', $_POST['someID']);
if (mysql_num_rows($result) > 0) {
while ($row = mysql_fetch_array($result)) {
$ownerID = $row["fk_userID"];
}
}
echo (!empty($ownerID)) ? 'Locked' : 'Open';
die;
}
其次,如果您能够将值成功减少到6,则应尝试存储该值并在检查中使用该值。您是否尝试提醒您的价值以确定它是否匹配?
jQuery.post("mypath/include/jquery_bll.php", { instance: 'controllAccess', brandID: obj.id }, function(data) {
data = jQuery.trim(data);
alert(data);
}