无法检查从json编码的php数组准备的javascript json中的对象值
服务器端代码无法检查从json编码的php数组准备的javascript json中的对象值,javascript,php,arrays,json,Javascript,Php,Arrays,Json,服务器端代码 $NATIVE_TEST_TEMPLATE_IDS = array(145); 将PHP数组分配到javascript的客户端代码- var nativetestTemplates = "<?php echo json_encode($NATIVE_TEST_TEMPLATE_IDS); ?>"; //PHP array into JSON. 此外,阵列的各个元素具有以下特性- nativetestTemplates[0] -> [ nativetestTem
$NATIVE_TEST_TEMPLATE_IDS = array(145);
将PHP数组分配到javascript的客户端代码-
var nativetestTemplates = "<?php echo json_encode($NATIVE_TEST_TEMPLATE_IDS); ?>"; //PHP array into JSON.
此外,阵列的各个元素具有以下特性-
nativetestTemplates[0] -> [
nativetestTemplates[1] -> 1
nativetestTemplates[2] -> 4
nativetestTemplates[3] -> 5
nativetestTemplates[4] -> ]
那么,我做错了什么?检查对象中是否存在元素的最佳方法是什么。
更新
在修复了Djave指出的错误之后,我仍然无法检查对象nativetestTemplates中是否存在元素
这是我的密码-
案例1
即使TestedNetworkId具有匹配值,也会返回以下值-
see -1 and undefined
案例2
但是,如果我这样做-
var testAdnetworkId = 145; //hardcoded integer val
我获得了$.inArray检查所需的输出-
see 0 and undefined
testAdnetworkId的console.dir在案例1中给出了以下信息-
0“1”
1“4”
2“5”
但是,在案例2中,它给出了-
0 145
请有人解释一下在案例1中进行对象属性检查的正确方法(读取select下拉列表的值)不要用引号括起来,你是说
var nativetestTemplates = "[145]";
你想让它说
var nativetestTemplates = [145];
因此,您的代码应该是:
var nativetestTemplates = <?php echo json_encode($NATIVE_TEST_TEMPLATE_IDS); ?>; //PHP array into JSON.
不过别担心,你可以解决这个问题
var testAdnetworkId = parseInt($("#adnetwork_type").val()); //reading selected dropdown value
parseInt()
是你的朋友。它尽力用数字替换字符串或其他变量,这正是您想要的。您将在这里看到它的工作原理
有关变量类型的详细信息:
不要用引号括起来,你是说
var nativetestTemplates = "[145]";
你想让它说
var nativetestTemplates = [145];
因此,您的代码应该是:
var nativetestTemplates = <?php echo json_encode($NATIVE_TEST_TEMPLATE_IDS); ?>; //PHP array into JSON.
不过别担心,你可以解决这个问题
var testAdnetworkId = parseInt($("#adnetwork_type").val()); //reading selected dropdown value
parseInt()
是你的朋友。它尽力用数字替换字符串或其他变量,这正是您想要的。您将在这里看到它的工作原理
有关变量类型的详细信息:
不要用引号括起来,你是说
var nativetestTemplates = "[145]";
你想让它说
var nativetestTemplates = [145];
因此,您的代码应该是:
var nativetestTemplates = <?php echo json_encode($NATIVE_TEST_TEMPLATE_IDS); ?>; //PHP array into JSON.
不过别担心,你可以解决这个问题
var testAdnetworkId = parseInt($("#adnetwork_type").val()); //reading selected dropdown value
parseInt()
是你的朋友。它尽力用数字替换字符串或其他变量,这正是您想要的。您将在这里看到它的工作原理
有关变量类型的详细信息:
不要用引号括起来,你是说
var nativetestTemplates = "[145]";
你想让它说
var nativetestTemplates = [145];
因此,您的代码应该是:
var nativetestTemplates = <?php echo json_encode($NATIVE_TEST_TEMPLATE_IDS); ?>; //PHP array into JSON.
不过别担心,你可以解决这个问题
var testAdnetworkId = parseInt($("#adnetwork_type").val()); //reading selected dropdown value
parseInt()
是你的朋友。它尽力用数字替换字符串或其他变量,这正是您想要的。您将在这里看到它的工作原理
有关变量类型的详细信息:
您需要在javascript中解析json变量,如下所示: nativetestTemplates=JSON.parse(nativetestTemplates)
现在,nativetestTemplates.length将为您提供正确的结果。您需要在javascript中解析json变量,如下所示: nativetestTemplates=JSON.parse(nativetestTemplates)
现在,nativetestTemplates.length将为您提供正确的结果。您需要在javascript中解析json变量,如下所示: nativetestTemplates=JSON.parse(nativetestTemplates)
现在,nativetestTemplates.length将为您提供正确的结果。您需要在javascript中解析json变量,如下所示: nativetestTemplates=JSON.parse(nativetestTemplates)
现在,nativetestTemplates.length将为您提供正确的结果。是否尝试对其进行分析
var nativetestTemplates=JSON.parse(JSON_编码_字符串)代码>在哪一步,它将如何受益?我现在已经纠正了这个错误,正如Djave所指出的。是否尝试解析它var nativetestTemplates=JSON.parse(JSON_编码_字符串)代码>在哪一步,它将如何受益?我现在已经纠正了这个错误,正如Djave所指出的。是否尝试解析它var nativetestTemplates=JSON.parse(JSON_编码_字符串)代码>在哪一步,它将如何受益?我现在已经纠正了这个错误,正如Djave所指出的。是否尝试解析它var nativetestTemplates=JSON.parse(JSON_编码_字符串)代码>在哪一步,它将如何受益?我现在已经纠正了Djave指出的错误。谢谢你指出错误。但我仍然有一个问题。请查看我的问题更新。感谢您指出错误。但我仍然有一个问题。请查看我的问题更新。感谢您指出错误。但我仍然有一个问题。请查看我的问题更新。感谢您指出错误。但我仍然有一个问题。请检查我的问题更新。