gko11,
если клиент отправляет JSON, то на сервере не будет $_POST['name'] и прочего. $name = htmlspecialchars($name); $name = urldecode($name); и далее подобное, это никчемное и не нужное. |
if(isset($_POST['name']))
{ В начале обработчика стоит проверка, Тут косяк в js либо в форме |
var url = "http://search-apteki.ru/sendmail/index.php";
$.post(url, { name: $("#req_name").val(), drug: $("#req_drug").val(), phone: $("#req_phone").val(), comment: $("#req_comment").val() }, function(resp) { console.log(resp); } ); |
gko11, северу данные как JSON.stringify(object) переданы не будут, не отправит JQ такое. Можно так отправить 'key=' + JSON.stringify(object).
В этом случае на сервере будет получен массив под ключом key которого будет JSON, и нужно получить данные из него сначала - json_decode. Отправляйте просто объект как уже было сказано. А вот htmlspecialchars и urldecode выкинуть, это чушь. Первое не нужно потому, что отправление как текст, а второе потому, что urldecode будет выполнено уже. |
Если можно код представить, я js пока только изучаю)
|
var url = "http://search-apteki.ru/sendmail/index.php";
$.post(url, { name: "123123", drug: "123123", phone: "123123", comment: "123123" }, function(resp) { console.log(resp); } ); Пробовал делать так, но так же $_POST пустые |
Цитата:
$.ajax({ type: 'post', url: '/sendmail/index.php', //домен не обязателен, если только не запрос на другой data: { name: $("#req_name").val(), drug: $("#req_drug").val(), phone: $("#req_phone").val(), comment: $("#req_comment").val() }, success: function(d) { //Обработка ответа сервера, ответ хранится в d } }) |
Спасибо, но не работает, мне кажется косяк в самой форме, т.к. пытался на прямую с формы отправить на обработчик, а толку 0, так жы пустые значения
|
gko11,
Добавьте полям формы имена name, drug, phone, comment соответственно, запрос отправляйте по событию submit формы, тогда data: можно записать проще: data: $(this).serialize() |
Цитата:
<? if($_POST) { exit(print_r($_POST, 1)); //отправим клиенту что получили } ?> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> <style> </style> <script src="https://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script> <script> $(function() { $('#send').submit(function(e) { e.preventDefault(); $.ajax({ type: 'post', url: location, //заменить в реальном коде на действительный URL data: $(this).serialize(), success: function(d) { //Обработка ответа сервера, ответ хранится в d alert(d) } }) }); }); </script> </head> <body> <form id="send"> <div class="form-group"> <input class="form-control" required placeholder="Ваше имя" value="Пример" name="name" type="text"> </div> <div class="form-group"> <input class="form-control" placeholder="Интересующий препарат" name="drug" value="Пример" type="text"> </div> <div class="form-group"> <input class="form-control" required placeholder="Телефон" name="phone" value="Пример" type="text"> </div> <div class="form-group"> <textarea class="form-control" placeholder="Комментарий" name="comment">Пример</textarea> </div> <div class="clearfix"></div> <button type="submit" class="btn btn-request btn-block">Отправить</button> </form> </body> </html> Клиент в ответ получит массив, который он отправил серверу. Заменив в url текущий (location) на свой реальный, код будет отправлять и на реальный адрес. Поле INPUT для комментария неудобно. |
Часовой пояс GMT +3, время: 20:15. |