SyntaxError: Unexpected end of JSON input

谁说我不能喝 提交于 2019-12-25 04:27:44

问题


I can record data in my db but ajax loading doesn't inter in success method. What's the problem?

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();
}
?>

script

   $("#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

<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:


your jquery ajax call should include

dataType: 'html',

to explicitly state that the data coming back from the server is html

in fact you're taking result and putting it straight into the DOM node with id statusText


Then you have to fix a major issue: your PHP script is not returning (echoing) any data !


Bottom note: you really should use mysqli for your db queries http://php.net/manual/en/book.mysqli.php and also use prepared statements to build up the query (instead building up the SQL query by concatenating strings).



来源:https://stackoverflow.com/questions/40086609/syntaxerror-unexpected-end-of-json-input

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!