Передача переменных PHP обратно на переменные JavaScript на исходной странице как Ajax

У меня есть Ajax, который передает переменную javascript в getfirstvals.php, которая затем делает свою вещь с DB и echos из таблицы значений в зависимости от переменной javascript, которую я вводил. Теперь я хочу передать эти переменные PHP, которые повторяются, обратно на исходную страницу, на которую отправляется javascript, чтобы преобразовать их в переменные javascript для выполнения вычислений. Я не уверен, как это сделать.

Ниже показано, как это работает.

Диапазон «ползунок» для выбора значений:

echo "<input id='slider' type='range' min=\"$vartime[0]\" max=\"$timemax\" value=\"$vartime[0]\" step='any' /> <span id='range'> </span>" 

……

  selectslider.onchange=function changecolour(){ showValue(selectslider.value) 

…..

 <script type="text/javascript"> function showValue(str) { if (str == "") { document.getElementById("datatable").innerHTML = ""; return; } if (window.XMLHttpRequest) { // code for IE7+, Firefox, Chrome, Opera, Safari xmlhttp = new XMLHttpRequest(); } else { // code for IE6, IE5 xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); } xmlhttp.onreadystatechange = function () { if (xmlhttp.readyState == 4 && xmlhttp.status == 200) { document.getElementById("datatable").innerHTML = xmlhttp.responseText; } } if (floorchoice!=0 && floorchoice!=1){ if (floorchoice==2) { xmlhttp.open("GET", "getfirstvals.php?q=" + str, true); xmlhttp.send(); 

……

Это отправляет «q» в getfirstvals.php, который находит значения, соответствующие q в th DB, и выделяет все значения в той же строке, что и он. Таким образом, при изменении q значения эхо-значений меняются. Как я уже упоминал выше, я бы хотел, чтобы эти значения не только отражались, но и возвращались к переменным javascript на исходной странице, которые затем могут использоваться для вычислений. Ниже приводится то, что я имею в виду под эхо-значениями:

  echo "<td>" . $FFlrOpenPlanTemp . "&#8451</td>"; echo "<td>" . $FFlrPCRoomTemp . "&#8451</td>"; echo "<td>" . $FFlrStudyRm6Temp . "&#8451</td>"; echo "<td>" . $FFlrStudyRm8Temp . "&#8451</td>"; 

Взгляните на JSON . PHP имеет функцию: json_encode, которая будет принимать объект данных PHP (т. Е. Массив, но не обязательно должен быть массивом) и кодировать его в понятии объекта javascript.

В вашем JS вы можете оценить (подсказка: не используйте eval , современные браузеры имеют json parsers), чтобы получить данные JSON в объект Javascript.

пример

Если у меня есть следующий массив в PHP:

$array = array( "test1" => 1, "test2" => 2, 3, array( 4, 5, 6 ));

И я json_encode этот массив, я заканчиваю следующей строкой :

{"test1":1,"test2":2,"0":3,"1":[4,5,6]}

Это то, к чему вы вернетесь в JS (иначе, эхо). Вы можете проанализировать это с помощью функции парсинга JSON.parse в Javascript:

var obj = JSON.parse(phpReturnStr);

Вуаля . У вас есть объект в JS, переданный из PHP.

Во-первых, вы можете использовать Javascript-библиотеку, чтобы сделать ее более простой и кросс-браузер. Затем я предлагаю вам передать переменные из PHP в JS с помощью json_encode() . Потратьте минутку, чтобы увидеть, как работает jQuery.getJSON , и это будет детская игра.