2014-01-04 3 views
1

У меня проблема, что успех: функция не работает. Обновления все в порядке, и I'm получает сообщение об Json, но я просто получаю сообщение об ошибке:json_encode от PHP до jQuery

SyntaxError: JSON.parse: неожиданный характер

Я искал это и нашел всегда советы от разработчика

header('Content-type: application/json'); 

У меня есть это, но он все еще не работает.

Любые предложения?

Спасибо

That's мой .js

$(document).ready(function(){ 
    $("#benutzerDaten").submit(function(){ 
    var inhalt = $("#usr_vorname").val(); 
    if($("#usr_vorname").val() === ""){ 
     $("#ausgabe").text("das Feld ist leer"); 
    }else{ 
     $.ajax({ 
     dataType: "json", 
     type: "POST", 
     data: "usr_vorname=" + inhalt, 
     //data: inhalt, 
     beforeSend: function(x){ 
      if(x && x.overrideMimeType){ 
      x.overrideMimeType("application/json;charset=UTF-8"); 
      } 
     }, 
     url: "jsonphp.php",   
     success: function(data){ 
      if(data.success === true){ 
      alert("success"); 
      }else{ 
      alert("nein"); 
      } 
     }, 
     error: function(xhr, ajaxOptions, thrownError){ 
      alert(xhr.status); 
      alert(thrownError); 
      //alert(ajaxOptions); 
     } 
     }); 
    } 
    return false; 
    }); 
}); 

То будет json.php

if(isset($_POST['usr_vorname'])){ 
    $usr_vorname = $_POST['usr_vorname']; 
    $userInstanz->updateUser("usr_vorname", $usr_vorname); 
} 

и that's части моего класса, что делает $

JSON
$json = array(
     "success" => true, 
     "result" => "Benutzer wurde aktualisiert!" 
    ); 
    header('Content-type: application/json'); 
    echo json_encode($json); 

Firebug s это хау:

{"success":true,"result":"Benutzer wurde aktualisiert!"} 

ответ

0

Изменение в:

1.Just заменить $ .post вместо $ .ajax.

2.No потребность beforeSend: функции (х) {}

3.json_encode ($ JSON); достаточно одного, нет необходимости в заголовке ('Content-type: application/json');

$(document).ready(function(){ 

    $("#benutzerDaten").submit(function(){ 

     var inhalt = $("#usr_vorname").val(); 

     if($("#usr_vorname").val() === ""){ 

      $("#ausgabe").text("das Feld ist leer"); 

     }else{ 

      $.post("json.php",{ usr_vorname:inhalt}, function(data){ 

       if(data['success']== true){ 

        alert('success'); 

       }else{ 

        alert('something went wrong'); 
       } 


      },"json"); 
     } 
    }); 
}); 

Json файл:

if(isset($_POST['usr_vorname'])){ 

     $usr_vorname = $_POST['usr_vorname']; 

     $userInstanz->updateUser("usr_vorname", $usr_vorname); 

     } 

     $json = array(
      "success" => true, 
      "result" => "Benutzer wurde aktualisiert!" 
     ); 

    echo json_encode($json); 

Надежда Это помогает ....

+0

Пожалуйста, не просто отправляйте код, объясните, что вы сделали и почему. Кроме того, удалите ненужные символы новой строки, поскольку форматированный код читается легче :) – Martijn

0

Удалить

header('Content-type: application/json'); 
+0

I've нашел решение. Я обманул себя print_r ($ stmt); Ведьма я забыл прокомментировать. Теперь все идеально. Спасибо. – ToTe

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