Обновление таблицы с помощью AJAX с циклом


Я довольно новичок в Javascript, и в частности в Ajax, так что потерпите меня...

Я хочу обновить таблицу после вставки новой строки, но вместо того, чтобы Ajax выводил всю таблицу html вместе, я бы предпочел собрать все данные из PHP mysql и вставить их в уже существующую таблицу с циклом.

Вот как я обычно делаю это с помощью PHP и функции while(), чтобы я мог вставлять различные части данных с помощью массива. Например, для "$mem['Name']"

    $mems = mysql_query($sql,$con);
    while($mem=mysql_fetch_array($mems)){
                $lmc++;


                            echo '<tr class="data">';
                                echo '<td class="index">'.$lmc.'</td>';          
                                echo '<td class="name">'.$mem['Name'].'</td>';
                                echo '<td class="arcid">'.$mem['ArcID'].'</td>';
                                echo '<td class="type">'.$mem['Type'].'</td>';
                                echo '<td class="role">';
                                echo '<input style="width:100%;" type="text" name="art_realname" id="art_realname" class="field" value="'.$mem['Role'].'"   tabindex="1" />';
                                echo '</td>';
                            echo '</tr>';
                        };

Есть ли какой-либо способ использовать AJAX, чтобы я мог сначала собрать все данные в PHP-файле и поместить их в массив, затем, во-вторых, отправить их обратно в AJAX, а затем, наконец, выполнить раздел цикла с использованием Javascript на фактической странице и вставить его в таблицы там?

Author: Brian Tompsett - 汤莱恩, 2012-09-27

1 answers

Для этого решения требуется jQuery, но вы можете использовать любую JS-фреймворк/библиотеку.

Кроме того, вы должны знать, что использование функций mysql_* - плохая идея, так как они скоро устареют.

Теперь давайте предположим, что у вас на сервере есть скрипт с именем ajax.php. Вы должны выполнять запросы к своей базе данных так же, как и всегда, но вместо echo ввода - введите переменную.

<?php
/* your script here */
$data = ... /* data your query returned */

header ("Content-Type: application/json" );
echo json_encode ($data);
?>

Затем на стороне клиента:

$.getJSON ( "ajax.php", function (data) {
   /* data is the $data from your PHP script */
});

Ты не идиот :)

 1
Author: wroniasty, 2012-09-26 21:14:08