Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 08.12.2019, 17:22
Кандидат Javascript-наук
Отправить личное сообщение для Cdelphi78 Посмотреть профиль Найти все сообщения от Cdelphi78
 
Регистрация: 30.11.2015
Сообщений: 117

Проблемы с ajax
Сервер не возвращает полученные данные в функцию done, возвращает только в консоль, причем даже не в консоль лог, не могу разобраться почему..голова не варит уже..

В какой то момент возвращал а сейчас не возвращает..

<script>

        $(document).ready(function() {

        $("form").submit(function() { //Change
        var th = $(this);
        $.ajax({
            type: "POST",
            url: '<?php echo home_url();?>/wp-admin/admin-ajax.php', //Change
            data: {
                action: "WAjax",
                formData: th.serialize()
            }

            
        }).done(function(data) {

            alert('Заявка отправлена! Ответ:' + data);

            console.log(data);


            // $(".errors").remove();

            //     if (typeof data === "undefined" || data === null || data ===  "") {

            //         alert('Заявка отправлена!');

            //         //window.location.href = "https://lukuabi-24h.ee/thank/"

            //     } else {
            //         $(".main-form-block").append('<div class="errors">' + data + '</div>');
            //     }

            // setTimeout(function() {
            //     // Done Functions
            //     th.trigger("reset");
            // }, 1000);
        });
        return false;
    });
});
    </script>


function ajax_function(){

    header('Content-Type: application/x-javascript; charset=utf8');


    parse_str($_POST['formData'], $formData);

$client = htmlspecialchars($formData[client]);
$phone = htmlspecialchars($formData[phone]);


echo $client;


}
Ответить с цитированием
  #2 (permalink)  
Старый 08.12.2019, 17:53
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Content-Type: application/x-javascript; и $formData[client] да еще после htmlspecialchars, это как понимать?

$formData[client], а не $formData['client'], не будет ошибкой до тех пор пока РНР не зарезервирует такую константу. Так делать не стоит вне строки.
Ответить с цитированием
  #3 (permalink)  
Старый 09.12.2019, 00:37
Кандидат Javascript-наук
Отправить личное сообщение для Cdelphi78 Посмотреть профиль Найти все сообщения от Cdelphi78
 
Регистрация: 30.11.2015
Сообщений: 117

Болагодарю, теперь разобрался...оказалось что в коде было много лишнего..не представляю откуда там взялась там та строка но я ее не удалял видимо думал это нужно для вордпресс..
вот сейчас допилил
Еще маленький вопросик...

почему то данные возвращаются с лишним нулем на конце..не понятно откуда..конечно проблему решил этой строчкой newData = data.slice(0, -1); но хотелось бы разобраться..

<script>

        $(document).ready(function() {

        $("form").submit(function() { //Change
        var th = $(this);
        $.ajax({
            type: "POST",
            url: '<?php echo home_url();?>/wp-admin/admin-ajax.php', //Change
            data: {
                action: "WAjax",
                formData: th.serialize()
            }

            
        }).done(function(data) {

            //console.log(data);

            newData = data.slice(0, -1);

            $(".errors").remove();

                if (typeof newData === "undefined" || newData === null || newData ===  "") {

                    //alert('Заявка отправлена!');

                    window.location.href = "https://lukuabi-24h.ee/thank/"

                } else {
                    $(".main-form-block").append('<div class="errors">' + newData + '</div>');
                }

            setTimeout(function() {
                // Done Functions
                th.trigger("reset");
            }, 1000);
        });
        return false;
    });
});


function ajax_function(){

    // header('Content-Type: application/x-javascript; charset=utf8');


		parse_str($_POST['formData'], $formData);

		$client = trim($formData['client']);
		$phone = trim($formData['phone']);



if ($client == '' || $phone == '') {

    $error = "Заполните все поля!";

} elseif (!ctype_digit($phone)) {

    $error = "В телефоне содержатся только цифры!";

} elseif (!preg_match("/^[0-9]{10,11}+$/", $phone)) {

    $error = "Проверьте номер. В телефоне должно быть 11 символов"; 

} else {



$today = date("Y-m-d H:i:s");
$sendto = "info@lukuabi-expert.ee";
$files_txt = fopen('counter.txt', 'a+'); 
$count_elm = fgets($files_txt); 
fclose($files_txt);
$count_elm++;
$a = (string)$count_elm;
$f = fopen("counter.txt", "w");
fwrite($f, $a); 
fclose($f);
$subject  = "Zayavka #".$count_elm." ".$otkuda;
$msg  = " ";
$msg .= "<b>Клиент: </b>".$client."<br>";
$msg .= "<b>Телефон: </b>".$phone."<br>";
$msg .= "<b>Сайт lukuabi-24h.ee";

$msg .= "<b>Дата и время заявки: </b>".$today."<br>";
$headers  = "Content-type: text/html; charset=utf-8 \r\n"; 
$headers .= "From: me <mail@mail.com>\r\n";
if($client!="" && $phone!=""){
	@mail($sendto, $subject, $msg, $headers);
}

}

echo $error;

}
Ответить с цитированием
  #4 (permalink)  
Старый 09.12.2019, 01:59
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Что тут вообще происходит, если кроме текста об ошибках сервер ничего не возвращает, но на клиенте .slice(0, -1)?

А это что такое - parse_str($_POST['formData'], $formData);?
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблемы с синхронным запросом ajax Aliaksei AJAX и COMET 2 22.06.2013 23:14
Форма обратной связи на AJAX проблемы с модальным окном pavel87 AJAX и COMET 0 26.05.2011 14:30
Проблемы с кодировкой в AJAX alxcube Общие вопросы Javascript 3 18.01.2011 12:09
Проблемы с кодировкой в ajax Axenic Общие вопросы Javascript 3 27.07.2010 09:30
глюк форума Gvozd Сайт Javascript.ru 11 18.03.2009 14:37