У меня есть два файла, один из которых содержит массив в PHP, echo
редактируемый с помощью json_encode, а другой полон функций JavaScript для веб-страницы. Одна из таких функций, которая выглядит так (и еще не завершена):
/*
* Function: selectVictim
* Called from function laserOn()
*
* Selects a random victim from a list of victims
*
* @return String: victim
*/
function selectVictim()
{
var params = "url=queenofsheep.com/Sheep/victims.php";
var request = new ajaxRequest();
request.open("POST", "victims.php", true);
request.setRequestHeader("Content-Type",
"application/x-www-form-urlencoded");
request.setRequestHeader("Content-Length", params.length);
request.setRequestHeader("Connection", "close");
request.onreadystatechange = function ()
{
if (this.readyState == 4)
{
if (this.status == 200)
{
if (this.responseText != null )
{
var vicString = this.responseText;
var vicArray = eval('"'+vicString+'"');
//var vicArray = vicString.split(',');
//var numVic = Math.floor(Math.random() * (vicArray - 1));
alert(vicArray);
}
else alert("Ajax error: No data received");
}
else alert("Ajax Error: " + this.statusText);
}
}
request.send(params);
}
Предполагается взять массив из другого файла и выполнить с ним действия, выходящие за рамки этого вопроса. К сожалению, пока this.responseText
содержит JSON-кодированный массив формата
var jsonArr =
["1","2,","3"]
активация функции ничего не делает, а eval
ing this.responseText
дает "undefined".
Что я здесь не так делаю? Я могу предоставить больше примеров реального кода, фактического массива, что угодно, если это будет необходимо. Это сводит меня с ума.