2016-04-03 42 views
-1

はコードの下に見ながら、作業を挿入し、すべてが正常に動作している更新が、私は成功のメッセージを得ることができないではない、私はこのエラーエラーを取り除く方法ファイルのアップロードがAJAX呼び出し

SyntaxError: JSON.parse: unexpected non-whitespace character after JSON data 

とどのように取得しています成功のメッセージ

<script type="text/javascript"> 
 
    $(document).ready(function(){ 
 
$("#user-submit").click(function(event){ 
 
    event.preventDefault(); 
 
    if($("form#newUserForm").valid()){ 
 
    var formData = new FormData(); 
 
    var formData = new FormData($('#newUserForm')[0]); 
 
    formData.append('file', $('input[type=file]')[0].files[0]); 
 
\t $.ajax({ 
 
\t url: 'horoscope-check.php', 
 
\t type: 'POST', 
 
\t data: formData, 
 
\t async: false, 
 
\t cache: false, 
 
\t contentType: false, 
 
\t processData: false, 
 
\t success: function (data) { 
 
\t \t var res=jQuery.parseJSON(data);// convert the json 
 
\t \t console.log(res); 
 
\t }, 
 
\t 
 
}); 
 

 
    return false; 
 
    }else{ 
 
\t console.log("false"); 
 
    } 
 
}); 
 
    }); 
 
</script> 
 

 

 
<?php 
 
include("dbconfig.php"); 
 
$ssmid = "SSM84175"; 
 
$filename = basename($_FILES['file']['name']); 
 
$extension = pathinfo($filename, PATHINFO_EXTENSION); 
 
$new_name= md5($filename.time()).'.'.$extension; 
 
$approved = 0; 
 
$approved_on = date('Y-m-d H:i:s'); 
 
$updated_on = date('Y-m-d H:i:s'); 
 
$status = 0; 
 
if (move_uploaded_file($_FILES['file']['tmp_name'], "horoscope/".$new_name)) { 
 
\t // FILE TYPE CHECKING 
 
\t $allowed = array('gif','png' ,'jpg'); 
 
\t if(!in_array($extension,$allowed)) { 
 
\t \t $horoscope = array("message" => "filetype error"); 
 
\t \t echo json_encode($horoscope); 
 
\t } 
 
\t else{ 
 
\t if($_FILES['file']['size']>2459681){ 
 
\t \t $horoscope = array("message" => "filesize error"); 
 
\t \t echo json_encode($horoscope); 
 
\t } 
 
\t else{ 
 
\t \t //echo "filesize(success)"; 
 
\t \t $sql=mysql_query("SELECT * FROM user_horoscope WHERE ssm_id='$ssmid'"); 
 
\t \t $count = mysql_num_rows($sql); 
 
\t \t if($count != 0){ 
 
\t \t \t $horoscope = array("Count" => $count); 
 
\t \t \t $sql=mysql_query("UPDATE user_horoscope SET horoscope='$new_name',updated_on='$updated_on' WHERE ssm_id='$ssmid'"); 
 
\t \t \t if($sql){ 
 
\t \t \t $horoscope = array("message" => "update success"); 
 
\t \t \t }else{ 
 
\t \t \t $horoscope = array("message" => "update error"); 
 
\t \t \t } 
 
\t \t \t echo json_encode($horoscope); 
 
\t \t }else{ 
 
\t \t \t //$horoscope = array("message" => 'error'); 
 
\t \t \t $sql = mysql_query("INSERT INTO user_horoscope (ssm_id,horoscope,approved,approved_on,status) VALUES ('$ssmid','$new_name','$approved','$approved_on','$status')"); 
 
\t \t \t if($sql){ 
 
\t \t \t $horoscope = array("message" => "successully insert"); 
 
\t \t \t }else{ 
 
\t \t \t $horoscope = array("message" => "insert error"); 
 
\t \t \t } 
 
\t \t \t echo json_encode($horoscope); 
 
\t \t } 
 
\t \t echo json_encode($horoscope); 
 
\t } 
 
\t } 
 
}else{ 
 
\t //echo "Error"; 
 
\t $horoscope = array("message" => "file is not moving"); 
 
\t echo json_encode($horoscope); 
 
} \t 
 
?>
<!DOCTYPE html> 
 
<html> 
 
<head> 
 
    <meta charset="utf-8"> 
 
    <meta http-equiv="X-UA-Compatible" content="IE=edge"> 
 
    <title>Horoscope</title> 
 
     <!-- Bootstrap 3.3.5 --> 
 
     <link rel="stylesheet" href="../horoscope/bootstrap.min.css"> 
 
     
 
     
 
    <link rel="stylesheet" href="../horoscope/_all-skins.min.css"> 
 

 
    <!-- Admin Extension CSS --> 
 
    <link href="http://preview.oklerthemes.com/porto-admin/edge/assets/stylesheets/theme-admin-extension.css" rel="stylesheet"> 
 
    
 
    <!-- Font Awesome --> 
 
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.4.0/css/font-awesome.min.css"> 
 
    <!-- Admin Extension Skin CSS --> 
 
    <link rel="stylesheet" href="http://preview.oklerthemes.com/porto-admin/edge/assets/vendor/bootstrap-datepicker/css/bootstrap-datepicker3.css" /> 
 
    <link href="http://preview.oklerthemes.com/porto-admin/edge/assets/stylesheets/skins/extension.css" rel="stylesheet"> 
 

 
    <!-- Admin Extension Specific Page Vendor CSS --> 
 
    <link rel="stylesheet" href="http://preview.oklerthemes.com/porto-admin/edge/assets/vendor/bootstrap-fileupload/bootstrap-fileupload.min.css" /> 
 

 
    </head> 
 
<body> 
 
     <form class="form-horizontal form-bordered" method="POST" id="newUserForm" enctype="multipart/form-data"> 
 
      <div class="form-group"> 
 
      <label class="col-md-3 control-label">Photo Upload</label> 
 
      <div class="col-md-6"> 
 
      <div class="fileupload fileupload-new" data-provides="fileupload"> 
 
      <div class="input-append"> 
 
      <div class="uneditable-input"> 
 
      <i class="fa fa-file fileupload-exists"></i> 
 
      <span class="fileupload-preview"></span> 
 
      </div> 
 
      <span class="btn btn-default btn-file"> 
 
      <span class="fileupload-exists">Change</span> 
 
      <span class="fileupload-new">Select file</span> 
 
      <input type="file" id="file" name="file" value="" aria-required="true" required="" data-msg-required="Please select your file"> 
 
      </span> 
 

 
      <a href="#" class="btn btn-default fileupload-exists" data-dismiss="fileupload">Remove</a> 
 
      </div> 
 
      </div> 
 
      </div> 
 
      </div> 
 
      <div class="form-group"> 
 
      <div class="col-sm-offset-3 col-sm-6"> 
 
       <button class="btn btn-info" type="submit" id="user-submit">Submit</button> 
 
      </div> 
 
      </div> 
 
     </form> 
 
      <!-- jQuery 2.1.4 --> 
 
    <script src="../horoscope/jQuery-2.1.4.min.js"></script> 
 
    <!-- <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.0/jquery.min.js"></script><script>--> 
 
    <script src="http://preview.oklerthemes.com/porto-admin/edge/assets/vendor/bootstrap-fileupload/bootstrap-fileupload.min.js"></script> 
 
    <!-- Admin Extension Specific Page Vendor --> 
 
    <script src="http://preview.oklerthemes.com/porto-admin/edge/assets/vendor/jquery-validation/jquery.validate.js"></script> 
 
    
 
    <script src="../horoscope/jquery.validation.js"></script> 
 
    <script src="http://ajax.aspnetcdn.com/ajax/jquery.validate/1.11.1/jquery.validate.min.js"></script> 
 
\t 
 

 
</body> 
 
</html>

+0

エラーとして、AJAXリクエストから受信したデータが不正です。受け取っているデータか 'horoscope-check.php'ソースコードを見る必要があります。 –

答えて

0

を得るためにあなたのコードでは、二回echo json_encode($horoscope);を呼び出します。

... 
else{ 
     //echo "filesize(success)"; 
     $sql=mysql_query("SELECT * FROM user_horoscope WHERE ssm_id='$ssmid'"); 
     $count = mysql_num_rows($sql); 
     if($count != 0){ 
      $horoscope = array("Count" => $count); 
      $sql=mysql_query("UPDATE user_horoscope SET horoscope='$new_name',updated_on='$updated_on' WHERE ssm_id='$ssmid'"); 
      if($sql){ 
      $horoscope = array("message" => "update success"); 
      }else{ 
      $horoscope = array("message" => "update error"); 
      } 
      echo json_encode($horoscope); 
     }else{ 
      //$horoscope = array("message" => 'error'); 
      $sql = mysql_query("INSERT INTO user_horoscope (ssm_id,horoscope,approved,approved_on,status) VALUES ('$ssmid','$new_name','$approved','$approved_on','$status')"); 
      if($sql){ 
      $horoscope = array("message" => "successully insert"); 
      }else{ 
      $horoscope = array("message" => "insert error"); 
      } 
      echo json_encode($horoscope); 
     } 
     // the next line should be commented out. 
     // echo json_encode($horoscope); 
    } 
... 

この問題が解決するかどうかを確認してください。

+0

この行はエラーがなくなったことを意味しますが、成功メッセージはこのようになりません[オブジェクトオブジェクト] –

+0

これは 'res'がメッセージではなくオブジェクトであるからです。これを試してください: 'console.log(res.message);' –