将var数组从html发送到php的最佳方法是什么?
我尝试过使用serialise
,但似乎无法正常使用。
感谢
//HTML
var arrayTextAreasNames = ['1','2','3'];
xhttp.open("GET", "MyPhpScript.php?hId=" + inputId + "&arrayTextAreasNames=" + serialize(arrayTextAreasNames), true);
//Note: along with the array I am also sending another variable called inputId
//PHP
$arrayTextAreasNames = unserialize($_GET["arrayTextAreasNames"]);
console.log($arrayTextAreasNames); //The array is not read properly in php (empty!)
答案 0 :(得分:0)
这很脏,但也许是这样的:
var arrayString = "";
for (int i = 0; i < varArray.length; i++)
{
arrayString += "&element" + i + "=" + varArray[i];
}
然后您可以将arrayString添加到URL
答案 1 :(得分:0)
你必须在Javascript中执行两个步骤。
var arrayTextAreasNames = ['1','2','3'];
var jsonstring = JSON.stringify(arrayTextAreasNames);
console.log('before encode, ', jsonstring);
var encoded = encodeURIComponent(jsonstring);
console.log('encoded, ', encoded);
/// xhttp.open("GET", "MyPhpScript.php?hId=" + inputId + "&arrayTextAreasNames=" + encoded, true);
&#13;
在PHP中(Live demo here), 然后,您可以解码回预期的字符串。
$uri = '%5B%221%22%2C%222%22%2C%223%22%5D';
$result= urldecode($uri);
答案 2 :(得分:0)
只需使用JSON.stringify
将数组转换为json,然后使用encodeURIComponent
var arrayTextAreasNames = ['1','2','3'];
var jsonString = JSON.stringify(arrayTextAreasNames);
xhttp.open("GET", "MyPhpScript.php?hId=" + inputId + "&arrayTextAreasNames=" + encodeURIComponent(jsonString), true);
在php中,您使用rawurldecode
$arrayTextAreasNames = json_decode(rawurldecode($_GET['arrayTextAreasNames']));