2015-01-22 3 views
0

Я делаю обновление ajax. Мне просто нужен ответ успеха или неудачи, поэтому я знаю, как обращаться с некоторыми вещами в интерфейсе. Проблема в том, что она не работает. Совершенно новый для всего этого.PHP json response not working

$('.delete-template-popup .confirm').on('click', function() { 
    var templateName = $('.loaded-template-name').html(); 

    var templateArray = {}; 

    templateArray.templateName = templateName; 

    var JSONObject = [templateArray]; 
    var templateJson = JSON.stringify(JSONObject); 

    $.ajax({ 
     url: 'http://localhost/ds-layouts/public/delete-template.php', 
     type: 'post', 
     data: {"templatePHP" : templateJson}, 
     success: function(data) { 
      console.log(data) 
      if (data.status == "success") { 
       console.log(1) 
      } 
      // if (data.status == "success") { 
      // closePopup($('.delete-template-popup')); 
      // window.location.replace("http:////localhost/ds-layouts/public/manage-layouts.php"); 
      // } else { 
      // $('.delete-template-popup .error').show().html('An error occurred processing your request. Please try again. If this error persists contact blah.'); 
      // }       
     } 
    }); 
}); 

и PHP

if ($flag) { 
     //mysqli_commit($connection); 
     if ($debug) { 
      echo "pass"; 
      echo "\r\n"; 
     } 
     //$_SESSION["message"] = "Template delete was successful."; 
     //header('Content-Type: application/json'); 
     header('Content-Type: application/json; charset=UTF8'); 
     echo json_encode(array('status' => 'success')); 
    } else { 
     if ($debug) { 
      echo "fail"; 
      echo "\r\n"; 
     } 
     //mysqli_rollback($connection); 
     // header('Content-Type: application/json'); 
     // echo json_encode(array('status' => 'failure')); 
    } 

Так что сделка я получаю в, если блок РНР Постулаты штрафа. Если у меня есть заголовочная часть блока, я получаю все мои эхо-инструкции правильно, и я могу прочитать их в консоли разработчика Chromes. В тот момент, когда я раскомментирую инструкцию заголовка, ничего не работает. Это для одного из флагов флага true или false.

У меня такой же тип скрипта в другой области, и он работает абсолютно нормально. Не обращайте внимания на комментарии. Я просто комментировал вещи как способ выяснить, где все ломается. Вот как я определил заголовок, вызывающий его.

+2

Заголовок должен быть до эха – user4035

+0

Пожалуйста, удалите код с кодом –

+0

Wow ... так просто. Теперь я чувствую себя идиотом. Я этого не знал. Большое спасибо. – user2112618

ответ

0

Возможно, добавление dataType: "json", в ваш объект запроса AJAX поможет?

0

попробовать Этот PHP

header('Content-Type: application/json'); //must be FIRST output. 
if ($flag) { 

    //mysqli_commit($connection); 
    if ($debug) { 
     echo json_encode(array('debug' => 'pass')); 
    } 
    else 
    { 
     echo json_encode(array('status' => 'success')); 
    } 
} else { 
    if ($debug) { 
     echo json_encode(array('debug' => 'fail')); 
    } 
    else 
    { 
     //mysqli_rollback($connection); 
     echo json_encode(array('status' => 'failure')); 
    } 
} 

Я изменил отладки блоков вернуть JSON, так как включение отладки сломается Аякса в любом случае.

0

Поскольку ответ был отправлен как комментарий, я не могу отметить ответ как фиксированный. Я буду отмечать этот ответ как то, что исправили проблему:

«Заголовок должен быть перед эхо - user4035»

Спасибо вам user4035 за давая мне знать о заголовке быть перед любым вторит иначе, прежде чем любое печатное форма html с сервера ... Я должен был это знать.