我有一个由PHP生成的输入字段,里面有一个变量。有时它是一个字符串,有时它可以是一个数组:
// IF IT IS A STRING
//$var = "value";
// IF IT IS AN ARRAY
$var = array("value1", "value2", "value3");
<input type="text" id="test" value="<?php if ( is_array($var) ) { echo json_encode($var); } else { echo $var; } ?>"
现在这个输入字段被传递到第二页,如果输入是字符串或数组,我需要检查VIA JAVASCRIPT:
$(document).ready(function(){
var test = $("#test").val();
if ( Object.prototype.toString.call(test) === '[object Array]' ) {
alert("YES");
var ok = JSON.parse(test); //manage "ok" like an array
} else {
alert("NO");
var ok = test; // manage "ok" like a string
}
});
但我总是得到NO
警报!
我也试过if ( JSON.parse(test) ) {}
。如果是数组,它可以正常工作。但是如果它是一个字符串,我的脚本就会出现控制台错误:SyntaxError: JSON.parse: unexpected character at line 1 column 1 of the JSON data