Вернуть массив из php без перезагрузки страницы (jq, php)
Иногда требуется вернуть не строку, а именно массив с данными без обновления окна браузера. В этой небольшой статье я приведу пример того, как это можно сделать посредством jquery и post запроса к php с последующей обработкой полученных данных.
В запросе мы будем отправлять идентификатор операции и номер строки в таблице MySQL. В php обработаем $_POST запрос, сделаем выборку из БД и вернем массив, преобразованный в строку по средством функции json_encode($Array). В JS функции преобразуем полученную строку обратно в массив с помощью jQuery.parseJSON() и выполним необходимые операции.
Html:
<button id="1" onclick="work(this)">Батон</button> <input id="2" type="text"> <input id="3" type="text"> <input id="4" type="text">
JavaScript:
function work(obj) { $.post("work.php", { // Указываем php файл what: "zapros", // Передаем идентивикатор запроса data: obj.id // Передаем идентивикатор элемента }, function (data) { // Получаем данные после обработки var result = jQuery.parseJSON(data); // Строку в массив $("#2").val(result["text"]); $("#3").val(result["des"]) $("#4").val(result["num"]) }); }
Php:
<?php // work.php header("Content-Type:text/html;charset=UTF-8"); // Кодирока if ($_SERVER['REQUEST_METHOD'] == 'POST') { // Если POST запрос if ($_POST['what'] == 'zapros'){ // Нужный идентификатор запроса $db = mysql_connect('localhost','root','') or die('Ошибка подключения к БД'); mysql_select_db('test', $db); // Подключаемся к БД mysql_query("SET NAMES 'UTF8'"); $id = (int)$_POST['data']; // Т.к. нам нужно число $query = "SELECT text,des,num FROM sql_table WHERE id='$id'"; $result = mysql_query($query)or die('Нет значений в БД'); $data = mysql_fetch_array($result, MYSQL_ASSOC); if(!empty($data)) echo json_encode($data); else echo 'В БД нет строки'.$id; } } ?>
1
Поделиться:
5559
08.04.2013 г.