#php #mysql #ajax
#php #mysql — сервер #аякс #mysql #ajax
Вопрос:
Давайте предположим, что я хочу иметь следующий небольшой код
<div id="field"> Some links here with a database call. </div>
Проблема в том, что я хочу иметь возможность работать с ajax над ними и вызывать их, когда пользователь добавляет новую ссылку через соответствующую форму.
Поэтому вместо того, чтобы иметь этот div, я использую функцию и вызываю ее всякий раз, когда это необходимо, используя ajax.
<?php
function testfield ($id) { Database call
?>
<div id="field"> <?php The links in here ?> </div>
}
<html>
<body>
<?php testfield($_GET['id']); ?>
</body>
</html>
Поэтому, когда пользователь добавляет новую ссылку, я просто вызываю с помощью ajax функцию и все готово.
Есть ли какой-нибудь другой лучший способ сделать это? Заранее благодарю вас
Ответ №1:
Когда пользователь добавляет новую ссылку, вы отправляете данные с помощью AJAX в PHP-скрипт, который работает с базой данных, при успешном завершении вы должны обновить DIV с помощью javascript — напишите новую информацию (у вас это уже есть) в конце DIV или отобразите весь DIV с информацией, которую вы получаете из JSON massive, возвращенной с успехом из PHP-скрипта
Ответ №2:
Например, вы должны использовать JSON и возвращать данные в свой div. Для AJAX попробуйте использовать jQuery.
PHP-код:
$linkarray = array();
$linkarray[] = 'link1';
$linkarray[] = 'link2';
$linkarray[] = 'link3';
echo json_encode($linkarray);
HTML:
<html>
<body><div id="linklist"></div></body>
</html>
JS:
$.ajax({
url:'getlinklist.php',
dataType:'json',
type:'POST',
success: function(data){
$('#linklist').html('');
$.each(datamfunction(key,value){
$('#linklist').append(value '<br/>');
});
}
});
Комментарии:
1. Почему вы предлагаете json вместо обычного текста? Также я не уверен, что понял, что именно вы пытаетесь сделать. К вашему сведению, я не знаком с json. Что еще предлагает этот подход
2. JSON не так уж трудно понять. Попробуйте выполнить мой код и посмотрите на firebug, когда код обрабатывается.
3. И последний вопрос, хорошо, я вызываю его в $ (document). готов, но должен ли я снова скопировать часть ajax как функцию, чтобы вызвать ее позже? Потому что именно в этом заключался мой вопрос в первую очередь. Я не хочу иметь один и тот же код дважды.
4. создайте функцию и добавьте в нее весь JS-код. Сначала обработка кода на $(document). готово (); и затем вы можете создать кнопку или ссылку и отправить AJAX-запрос, когда пользователь нажимает кнопку / щелкает ссылку
5. Евгений Я знаю это, но этот div запустится, как только страница завершит загрузку, а затем я хочу, чтобы он обновлялся, как только пользователь добавит что-то в форму без необходимости перезагрузки формы. Я мог бы легко создать функцию, содержащую .ajax, и вызвать ее, когда документ будет готов, но для этого потребуется иметь возможность передавать переменную $ _GET[‘id’] из php в jquery, а afaik это невозможно.