从PHP到jquery的json_encode

时间:2014-01-04 16:03:47

标签: php jquery ajax

我有问题,成功:功能不起作用。 更新很好,我得到了一个Json,但我收到错误消息:

SyntaxError:JSON.parse:意外字符

我一直在寻找这个,并且总是找到关于

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

我有这个,但它仍然不起作用。

有什么建议吗?

谢谢

那是我的.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);
}

这是我班级中制作$ json

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

Firebug显示了这一点:

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

2 个答案:

答案 0 :(得分:0)

删除

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

答案 1 :(得分:0)

转变为:

1.只需替换$ .post而不是$ .ajax。

2.不需要beforeSend:function(x){}

3.json_encode($ JSON);足够单独,不需要标题('内容类型: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);

希望它有所帮助......