У меня есть 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 . "℃</td>"; echo "<td>" . $FFlrPCRoomTemp . "℃</td>"; echo "<td>" . $FFlrStudyRm6Temp . "℃</td>"; echo "<td>" . $FFlrStudyRm8Temp . "℃</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 , и это будет детская игра.