За последние 24 часа нас посетили 60275 программистов и 26280 роботов. Сейчас ищут 1912 программистов ...

Help! AJax и static

Тема в разделе "PHP для новичков", создана пользователем Vdodovich, 19 май 2017.

  1. Vdodovich

    Vdodovich Новичок

    С нами с:
    19 май 2017
    Сообщения:
    1
    Симпатии:
    0
    Есть проблема:
    Ajax форма:
    Код (Javascript):
    1.     else {
    2.             $.post(
    3.                 "../../app/sign/signup.php",
    4.                 {
    5.                     activation_code:$(".activation-input").val()
    6.                 },
    7.                 activationcode_Answer
    8.             );
    9.  
    10.  
    11.             function activationcode_Answer (object){
    12.                 console.log(object);
    13.             }
    14.         }
    Обработчик:
    PHP:
    1. public static function email_activation(){
    2.     $_SESSION['activation_code']=rand(1111, 9999);
    3.     if ($_SESSION['activation_code']!=$_POST['activation_code']) echo json_encode( "Hi world!");
    4. }
    В строке что приходит на клиент мусор по типу:
    Код (Text):
    1. "\u0412\u0438 \u043d\u0435 \u0432\u0432\u0435\u043b\u0438 \u043b\u043e\u0433\u0456\u043d""Hi world!"

    Попытка eval(object) - вовсе ошибка.


    P.S. первое знакомство с AJAX, строго не судите :)
     

    Вложения:

    #1 Vdodovich, 19 май 2017
    Последнее редактирование модератором: 20 май 2017
  2. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.843
    Симпатии:
    1.338
    Адрес:
    Лень
    PHP 7+
    PHP:
    1. public static function JSON( $A )
    2.     {
    3.         return json_encode ( $A, JSON_HEX_TAG | JSON_HEX_APOS | JSON_HEX_QUOT | JSON_HEX_AMP | JSON_UNESCAPED_UNICODE | JSON_FORCE_OBJECT );
    4.     }
    Сразу вопрос по 82 строке. Зачем проверять значения формы в аяксе если данные будут все равно обрабатываться пхп досканально
    99 вообще не понятно что за ... в логах же ошибки пишутся, почему не фиксишь их ?

    простая отправка всей формы без велосипедов с помощью ajax
    Код (Javascript):
    1. $( function()
    2. {
    3.     $( 'body' ).on( 'submit', 'form', function( e ) // ------------------- NEW
    4.     {
    5.         e.preventDefault();
    6.        
    7.         var item = new FormData( $( this ).get(0) );
    8.        
    9.         $.ajax(
    10.         {
    11.             url: $( this ).attr( 'action' ),
    12.             type: $( this ).attr( 'method' ),
    13.             contentType: false, // важно - убираем форматирование данных по умолчанию
    14.             processData: false, // важно - убираем преобразование строк по умолчанию
    15.             data: item,
    16.             dataType: 'JSON',
    17.             success: function( json )
    18.             {
    19.                 /* ... */
    20.             }
    21.         });
    22.     });
    23. });