2016-04-07 2 views
0

Я использую тип мастера формы, в этой форме у меня есть 3 шага.Как удалить SyntaxError: JSON.parse: неожиданный символ в строке 1 столбец 1 данных JSON

  1. Основные данные

  2. moreinformation

  3. подтверждение

Я заполнил первый шаг средства и нажмите кнопку отправки (следующий), я получил значение здесь зарегистри- newuser.php с этой страницы я написал, если условие вроде этого

if (!empty($birthday && $department)) {do something} 

Который дает мне

SyntaxError: JSON.parse: unexpected character at line 1 column 1 of the JSON data** 

Так что я изменил, если условие

if (!empty($birthday)) { do something} 

Который работает, но я также хочу, чтобы проверить $birthday и $department

$(document).ready(function(){ 
 
    $('#user-submit').click(function(event){ 
 
    event.preventDefault(); 
 
    var formData = new FormData(); 
 
    var formData = new FormData($('#newUserForm')[0]); 
 
    formData.append('file', $('input[type=file]')[0].files[0]); 
 
     
 
    $.ajax({ 
 
     url: 'php/register-newuser.php', 
 
     type: 'POST', 
 
     data: formData, 
 
     async: false, 
 
     cache: false, 
 
     contentType: false, 
 
     processData: false, 
 
     success: function (data) { 
 
     var res=jQuery.parseJSON(data);// convert the json 
 
     console.log(res); 
 
     }, 
 
    }); 
 
    }); 
 
}); 
 

 

 
// register-newuser.php 
 

 
<?php 
 
/*Basic Date*/ 
 
$fstname=$_POST['fname']; 
 
$filename = basename($_FILES['file']['name']); 
 
$extension = pathinfo($filename, PATHINFO_EXTENSION); 
 
$new_name= md5($filename.time()).'.'.$extension; 
 

 
$original_date = $_POST['birthday']; 
 
$birthday = date("Y-m-d",strtotime($original_date)); 
 

 
$department = $_POST['department']; 
 

 
    
 
if (!empty($Work_Shifts AND $zipcode)) { 
 
    $newuser = array ("firstname" =>$fstname,"filename" =>$new_name,"birthday" =>$birthday,"department" =>$department,"status" => "success"); 
 
    echo json_encode($newuser); 
 
} else { 
 
    $newuser = array("status" => "error"); 
 
    echo json_encode($newuser); 
 
} 
 
?>
<section class="panel form-wizard" id="w2"> 
 
    <div class="tabs"> 
 
    <ul class="nav nav-tabs nav-justify wizard-steps"> 
 
    <li class="active"> 
 
    <a href="#w2-account" data-toggle="tab" class="text-center"> 
 
    <span class="badge hidden-xs">1</span> 
 
    Basic Data 
 
    </a> 
 
    </li> 
 
    <li> 
 
    <a href="#w2-profile" data-toggle="tab" class="text-center"> 
 
    <span class="badge hidden-xs">2</span> 
 
    More Information 
 
    </a> 
 
    </li> 
 
    <li> 
 
    <a href="#w2-confirm" data-toggle="tab" class="text-center"> 
 
    <span class="badge hidden-xs">3</span> 
 
    Confirm 
 
    </a> 
 
    </li> 
 
    </ul> 
 
    <form class="form-horizontal" novalidate="novalidate" method="POST" id="newUserForm"> 
 
    <div class="tab-content" style="margin:15px"> 
 
    <div id="w2-account" class="tab-pane active"> 
 
     <div class="form-group"> 
 
      <label class="col-md-3 control-label">First Name<span class="star_mark">&nbsp;*</span></label> 
 
      <div class="col-sm-6"> 
 
       <input type="text" class="form-control" id="fname" name="fname" value="" aria-required="true" required="" data-msg-required="Please enter your firstname" placeholder="Enter your firstname"> 
 
      </div> 
 
     </div> 
 
     <div class="form-group"> 
 
      <label class="col-md-3 control-label">Photo Upload<span class="star_mark">&nbsp;*</span></label> 
 
      <div class="col-md-6"> 
 
       <div class="fileupload fileupload-new" data-provides="fileupload"> 
 
       <div class="input-append"> 
 
        <div class="uneditable-input"> 
 
         <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> 
 
       </div> 
 
       </div> 
 
      </div> 
 
     </div> 
 
    </div> 
 
    <div id="w2-profile" class="tab-pane"> 
 
     <div class="form-group"> 
 
      <label class="col-md-3 control-label">Birth Day <span class="star_mark">&nbsp;*</span></label> 
 
      <div class="col-md-6"> 
 
       <div class="input-group"> 
 
       <span class="input-group-addon"> 
 
       <i class="fa fa-calendar"></i> 
 
       </span> 
 
       <input type="text" data-plugin-datepicker="" class="form-control" id="birthday" name="birthday" value="" aria-required="true" required="" data-msg-required="Please select your birth day" placeholder="MM/DD/YYYY"> 
 
       </div> 
 
      </div> 
 
     </div> 
 
     <div class="form-group"> 
 
      <label class="col-md-3 control-label" for="inputDefault">Department <span class="star_mark">&nbsp;*</span></label> 
 
      <div class="col-md-6"> 
 
       <input type="text" class="form-control" placeholder="Department" id="department" name="department" value="" aria-required="true" required="" data-msg-required="Please enter your department"> 
 
      </div> 
 
     </div> 
 
    </div> 
 
    <div id="w2-confirm" class="tab-pane"> 
 
     <div class="alert alert-success"> 
 
      <strong>Success!</strong> Form has been successfully submitted. 
 
     </div> 
 
    </div> 
 
    </form> 
 
    </div> 
 
    <div class="panel-footer"> 
 
    <ul class="pager"> 
 
    <li class="previous disabled"> 
 
     <a><i class="fa fa-angle-left"></i> Previous</a> 
 
    </li> 
 
    <!-- <li class="finish hidden pull-right"> 
 
     <a>Finish</a> 
 
     </li> --> 
 
    <li class="next" id="user-submit"> 
 
     <a>Next <i class="fa fa-angle-right"></i></a> 
 
    </li> 
 
    </ul> 
 
    </div> 
 
</section>

+0

Получение ошибки, как это
Анализировать ошибки: ошибка синтаксиса, неожиданный '& &' (T_BOOLEAN_AND), ожидая ')' в /дома /srisanka/public_html/cupid/TV/php/register-newuser.php on line

ответ

0

Проблема заключается в том, что ваш вызов AJAX ожидает, что данные будут отправлены обратно. Вам нужно сделать две вещи.

Во-первых, добавить заголовок в PHP, чтобы сказать клиенту вы отправляете JSON обратно:

// This should be one of the first lines in the PHP file 
header('Content-Type: application/json'); 

Во-вторых, используйте $.ajax «s dataType свойство читать JSON обратно так:

$.ajax({ 
    url: 'php/register-newuser.php', 
    type: 'POST', 
    data: formData, 
    dataType: 'json', // This tells jQuery that it is getting JSON back - it will parse it for you 
    async: false, 
    cache: false, 
    contentType: false, 
    processData: false, 
    success: function (data) { 
    // data will be parsed by jQuery into an object or array based on the JSON 
    console.log(data); 
    }, 
}); 
+0

Hai Matthew Herbst Я сделал ваш код строки, но все же теперь получаю ту же ошибку –

+0

@KaniR вы добавили строку заголовка на свой PHP, добавили 'dataType' в вызов ajax и удалили' var res = jQuery.parseJSON (данные); –

+0

Получение ошибки как этот
Разбор ошибок: ошибка синтаксиса, неожиданный '& &' (T_BOOLEAN_AND), ожидая ')' в /дома /srisanka/public_html/cupid/TV/php/register-newuser.php on line

0

Вы можете попробовать добавить свойство dataType: 'json' в свой вызов ajax и удалить способ jQuery.parseJson(data) в ваш обратный вызов успеха.

Пример:

$.ajax({ 
 
    url: 'php/register-newuser.php', 
 
    type: 'POST', 
 
    data: formData, 
 
    dataType: 'json', 
 
    async: false, 
 
    cache: false, 
 
    contentType: false, 
 
    processData: false, 
 
    success: function (data) { 
 
    console.log(data); 
 
    } 
 
});

+0

Хай user2069766 я получаю как эта ошибка
Ошибка синтаксического анализа: ошибка синтаксиса, неожиданный '& &' (T_BOOLEAN_AND), ожидая ')' в /дома /srisanka/public_html/амура/TV/PHP/регистровые новый_пользователь .php on line