2014-10-17 6 views
0

Я пытаюсь отправить данные в свой PHP-файл, который вставляет значения в DB (эта часть в порядке), а затем отправляет обратно JSON-кодированные данные в файл JavaScript, чтобы я мог их отображать, но он не работает. Я не знаю, что действительно неправильно. Я смотрел на многие рабочие примеры, и мины не работают.Ошибка Ajax при получении данных из JSON

$.ajax({ 
    type: "POST", 
    dataType: "json", 
    url: "requete.php", 
    data: data, 
    success: function(data) { 
     if (data.success == true) { 
      alert(data.message); 
     } 
    }, 
    error: function(errorThrown) { 
     alert('error'); 
    } 
}); 

данных правильно направлен PHP и вставить в БД, но следующий JSON не будет дисплей:

if (isset($_POST['action']) && $_POST['action'] == 'add_attribution') { 


$nom = $_POST['nom']; 
$date = $_POST['date']; 
$montant = (int)$_POST['montant']; 
$type = utf8_decode($_POST['type']); 

    $sql = "insert into bo_depenses (montant,date,personne,description,carte) values('$montant','$date','','$nom','$type')"; 

    $result = mysql_query($sql); 

    $data = array('success'=> true,'message'=>'Success message: hooray!'); 

    echo json_encode($data); 

С помощью этого кода, консоль возвращается «Объект» с данными, посланных на PHP/MySql (??)

Спасибо за вашу помощь

UPDATE: Мне удалось получить результат JSon, поставив в сообщении об ошибке:

var obj = JSON.stringify(data) 
    alert(obj); 

Оказывается, что он отображает первые значения я послал в мой PHP скрипт (для вставки в БД), а не один я JSON закодированные ... Почему?

+3

Поместите 'console.log (data);' в начале вашей функции успеха: что входит в [консоль вашего браузера] (http://webmasters.stackexchange.com/questions/8525/how-to-open -The-Javascript-консоль-в-разных-браузеров)? Это скажет вам, 1) был ли вызов успешным, и 2) какой был полный ответ. Обновите свой вопрос, чтобы показать, что вы нашли. В качестве альтернативы используйте вкладку «Сеть» консоли: выполнит ли запрос «requete.php» и отправит полный ответ в ваш вопрос. – Shai

+0

попробуйте использовать 'if (data.success == 'true') {'. php может сделать это в строку. – Jerodev

+0

Что возвращает 'requete.php'? – Novocaine

ответ

0

Попробуйте использовать

if ($.trim(data.success) == 1) 

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

+0

Still не работает –

+0

@RentYourParis Я обновил свой ответ, пожалуйста, посмотрите –

+0

Спасибо, но все тот же –

0

Поместите header("content-type: application/json"); перед тем echo.

+0

Не работает ни :( –

+0

ОК, попробуйте изменить ваш успех, если 'if (data.success) {...}' И, возможно, удалить 'dataType:" json "' – alquist42

Смежные вопросы