Помогите решить проблему с написание скрипта отправителя и обработчика У меня формируется меню из базы данных {echo '<li><a href="?razdel='.$row['razdel']."&".$row1['podrazdel'].'">'.$row1['podrazdel'].'</a></li>';} как сделать чтобы полученная ссылка отправляла post запрос и в div появлялся ответ из базы данных из учета отправленных данных без перезагрузки страницы
это я понял как должна выглядеть ссылка при наведении и что должно быть написано в обрабатываемом файле я пытаюсь типа <a href="#" onclick="$.post('index.php?razdel=myrazdel&podrazdel=test ', function(data)">Отправить</a>
я уже зачитался и напробовался ничего не получается можно по конкретнее с примером наподобие: подробная ссылка файл обработки ответ
что-то не получается вместо кнопки пишу <a href="#" onclick="$.ajax({type: 'POST', url: 'handler.php?action=sample2', data: 'name=Andrew&nickname=Aramis', success: function(data){ $('.results').html(data);}});">Отправить</a> в результате нечего а хотелось бы передать три параметра обработать sql запрос и вывести результат
<!doctype html> <html> <head> <meta charset="utf-8"> <title>Cool page site</title> <script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script><!-- Библиотека jQuery --> <script src="js/script.js"></script><!-- Наш JS-код --> </head> <body> <button id="btn">Кликни меня!</button><!-- Кнопка для старта AJAX-запроса --> <a href="#" onclick="$.ajax({type: 'POST', url: 'handler.php?action=sample2', data: 'name=Andrew&nickname=Aramis', success: function(data){ $('.results').html(data);}});">Отправить асинхронный запрос00000000</a> <div id="output"></div><!-- Блок для вывода результатов --> </body> </html> Добавлено спустя 1 минуту 1 секунду: Кнопка для старта AJAX-запроса работает а ссылка нет
поправил все вот так <!doctype html> <html> <head> <meta charset="utf-8"> <title>Cool page site</title> <script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script><!-- Библиотека jQuery --> <script src="js/script.js"></script><!-- Наш JS-код --> </head> <body> <a href="#" onclick="$.ajax({type: 'POST', url: 'handler.php', data: 'data1=1&data2=2&data3=3', success: function(data){ $('.results').html(data);}});">Отправить</a> <div id="data"></div> </body> </html> Добавлено спустя 1 минуту 3 секунды: что написать в handler.php что бы в <div id="data"></div> появилось 1 2 3
1. у тебя Код (Text): $('.results').html(data); обновит элемент с классом results. Такого блока в твоём примере нет 2. Код (PHP): echo '1 2 3';
поправил <div id="results"></div> echo '1 2 3'; не подойдет т.к. я вместо 1 2 3 в data1=1&data2=2&data3=3 буду присваивать значения и что написать в handler.php
не работает index.html <html> <head> <meta charset="utf-8"> <title>Cool page site</title> <script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script><!-- Библиотека jQuery --> <script src="js/script.js"></script><!-- Наш JS-код --> </head> <body> <a href="#" onclick="$.ajax({type: 'POST', url: 'handler.php', data: 'data1=1&data2=2&data3=3', success: function(data){ $('.results').html(data);}});">Отправить</a> <div id="results"></div> </body> </html> handler.php <? echo $_POST['data1']; ?> ссылка отправить есть при наведение показывает # при нажатии не чего не делает
напиши как должно быть а я пока лекцию почитаю Добавлено спустя 32 минуты 18 секунд: Luge если понимаешь помоги пожалуйста а то я уже около месяца не могу найти выхода
Либо в success не $('.results'), а $('#results'), либо в диве не <div id=results>, а <div class=results>
помогите победить еще код текста {echo '<a href="#" onclick=" $.ajax ({ type: "POST", url: "rez.php", data: "data1=1&data2=2&data3=3", success: "function(data){.$('#results')..html(data);}"});">'.$row1['podrazdel'].'</a></li>';} как прописать {.$('#results') чтобы php правильно понял
Вы неверно понимаете принцип Ajax. Вот вы нажали вашу ссылку. Ajax отправил POST-запрос скрипту. Скрипт обработал запрос и выдал некий текст, Ajax вернул его обратно в JS в переменную data.responseText (кажется, так, сделайте console.log(data), чтобы убедиться). На стороне клиента никакого PHP уже нет, там только JS, которому дали data. Все эти $row1['podrazdel'] для него - китайская грамота. Обычно в таких случаях делают так: на стороне php формируют какой-то массив, который надо передать js-скрипту, и в конце делают echo json_encode($data). А на стороне js делают eval('res = '+data.responseText), и получают в res ровно тот же массив
нет все правильно {echo '<a href="#" onclick=" $.ajax ({ type: "POST", url: "rez.php", data: "data1=1&data2=2&data3=3", success: "function(data){.$('#results')..html(data);}"});">Отправить</a></li>';} '.$row1['podrazdel'].' можно заменить на отправить у меня из базы подставляет значение и оно получается в меню что на стороне сервера не совсем понял что где дописать data: "data1=1&data2=2&data3=3", тут тоже будут значения из базы, а на стороне в rez.php будут выбираться данные из базы и выводится в div контейнер
Да, с $row1['podrazdel'] я ступил. Попробуйте передавать данные не строкой, а словарем: data: {data1: 1, data2: 2, data3: 'abcd'}
код Код (PHP): <? echo '<a href="#" onclick=" $.ajax ({ type: "POST", url: "handler.php", data: "data1=1&data2=2&data3=3", success: "function(data) { $('#results') . html(data)}, }) ">Отправить</a>' ?> // используем BB-коды. Luge ошибка пишет html(data)}, Parse error: syntax error, unexpected '}', expecting ',' or ';' in W:\home\4.ru\www\1\index.php on line 38 что не хватает или хватает уже не знаю все перебпробовал разделил по строчно специально что бы найти ошибку