SyntaxError:JSON输入的意外结束

时间:2016-10-17 12:39:09

标签: json ajax forms record

我可以在我的数据库中记录数据但是ajax加载并不是成功之间的方法。问题是什么?

error: "SyntaxError: Unexpected end of JSON input
    at Object.parse (native)
    at n.parseJSON "

record_data.php

<?php
$type=getPar_empty("type",$_GET,"");
$new_nome=$_GET['new_nome'];
$new_cognome=$_GET['new_cognome'];
$new_email=$_GET['new_email'];
$new_lingua=$_GET['new_lingua'];
if ($type=="add_user"){
  $stmt=null;
  $stmt=$db->prepare("INSERT INTO newsletter_utenti(email,abilitato,nome,cognome,lingua,lista,data_creazione,unsubscribe) VALUES('$new_email',1,'$new_nome','$new_cognome','$new_lingua','manual',now(),0)");
  if (!$stmt) {
    log_msg($db->error);
    die();
  }
  $stmt->execute();
  $stmt->close();
  $db->close();
}
?>

脚本

   $("#salvaBtn").click(function(){
  var nome = $('#nome').val();
  var cognome = $('#cognome').val();
  var email = $('#email').val();
  var lingua = $('#lingua').val();
  var dataString = 'nome='+nome+'&cognome='+cognome+'&email='+email+'&lingua='+lingua+'&type=add_user';
  $.ajax({
    type:'GET',
    data:dataString,
    url:"record_data.php",
    success:function(result) {
              $("#status_text").html(result);
              $('#nome').val('');
              $('#cognome').val('');
              $('#email').val('');
    },
    error:function(xhr,status,error) {
      console.log(error);
    }
  });
});

$('#adduser').submit(function (){
  return false;
});

形式

<form name="adduser" id="adduser" method="GET" action="#">
            <div class="col-md-3">
              <div class="form-group m-b-30">
                <p>E-mail</p>
                <input class="form-control" type="email" id="email" name="email" placeholder="indirizzo e-mail" email required>
              </div>
            </div>
            <div class="col-md-3">
              <div class="form-group m-b-30">
                <p>Nome</p>
                <input class="form-control" type="text" id="nome" name="nome" placeholder="nome">
              </div>
            </div>
            <div class="col-md-3">
              <div class="form-group m-b-30">
                <p>Cognome</p>
                <input class="form-control" type="text" id="cognome" name="cognome" placeholder="cognome">
              </div>
            </div>
            <div class="col-md-3">
              <div class="form-group m-b-30">
                <p>Lingua</p>
                <select class="form-control" id="lingua" name="lingua">
                  <option value="it">IT</option>
                  <option value="en">EN</option>
                </select>
              </div>
              <input type="submit" class="btn btn-embossed btn-primary m-r-20" id="salvaBtn" value="Aggiungi utente"></input>
              <div id="status_text" /></div>
            </div>
          </form>

1 个答案:

答案 0 :(得分:1)

你的jquery ajax调用应该包括

dataType: 'html',

明确声明从服务器返回的数据是 html

实际上你正在使用result并将其直接放入ID为statusText

的DOM节点

然后你必须解决一个主要问题:你的PHP脚本没有返回echo ing)任何数据

下注: 真的应该使用 mysqli 进行数据库查询http://php.net/manual/en/book.mysqli.php,并使用预处理语句来构建查询(而不是通过连接字符串来构建SQL查询)。