2016-08-22 61 views
1

所有我有一个表单提交数据到一个PHP文件插入发布数据到一个CSV文件,我正在升级这个表单与AJAX工作,所以用户不必刷新提交页面,为什么我在位置0 parsererror的JSON中收到错误Unexpected token <?

但我有一个问题即时得到的错误

Unexpected token < in JSON at position 0 parsererror

和林不完全知道这意味着什么,我测试了我的开发服务器上的这种形式和它的工作一个魅力和我抄它横跨并做了一些微小的调整形式ID其领域来验证等,但现在我得到的错误,林不知道为什么,有什么想法?

<form id="form2" name="form2"> 
    <div id="response"></div> 
    <table> 
     <tr><td><input type="text" name="fname" id="fname" placeholder="First Name"/></td><td><input type="text" name="lname" id="lname" class="required" placeholder="Surname"/></td></tr> 
     <tr><td><input type="text" name="email" id="email" placeholder="Email"/></td><td><input type="text" name="postcode" id="postcode" placeholder="Postcode"/></td></tr> 
     <tr><td colspan="2"> 
      <p>Safe Combination</p> 
      <select name="number1"> 
       <option value="0">0</option> 
       <option value="1">1</option> 
       ... 
      </select> 
      <select name="number2"> 
       <option value="0">0</option> 
       <option value="1">1</option> 
       ... 
      </select> 
      <select name="number3"> 
       <option value="0">0</option> 
       <option value="1">1</option> 
       <option value="2">2</option> 
       ... 
      </select> 
      <select name="number4"> 
       <option value="0">0</option> 
       <option value="1">1</option> 
       ... 
      </select> 
      <select name="number5"> 
       <option value="0">0</option> 
       <option value="1">1</option> 
       ... 
      </select> 
      <select name="number6"> 
       <option value="0">0</option> 
       <option value="1">1</option> 
       ... 
      </select></td></tr> 
     <tr><td colspan="2"><input class="btn btn-danger" type="submit" value="SUBMIT" id="submit" name="submit"/></td></tr> 
    </table> 
</form> 

JS

<script src="https://code.jquery.com/jquery-3.1.0.min.js" integrity="sha256-cCueBR6CsyA4/9szpPfrX3s49M9vUU5BgtiJj06wt/s=" crossorigin="anonymous"></script> 
     <script type="text/javascript"> 
      $(document).ready(function(){ 
       $('form#form2').submit(function (e) { 

        e.preventDefault(); 

        // Get the Login Name value and trim it 
        var fname = $.trim($('#fname').val()); 
        var lname = $.trim($('#lname').val()); 
        var email = $.trim($('#email').val()); 
        var postcode = $.trim($('#postcode').val()); 
        // Check if empty of not 

        var valid = ''; 

        if (fname === '') { 
         //alert('First Name is empty.'); 
         valid+ 'First Name is empty.'; 
         //return false; 
        } 
        if (lname === '') { 
         //alert('Last Name is empty.'); 
         valid+ 'Last Name is empty.'; 
         //return false; 
        } 
        if (email === '') { 
         //alert('Email is empty.'); 
         valid+ 'Email is empty.'; 
         //return false; 
        } 
        if (postcode === '') { 
         //alert('Postcode is empty.'); 
         valid+ 'Postcode is empty.'; 
         //return false; 
        } 
        if(valid != '') { 
         $('#form2 #response').addClass('alert alert-danger').html("Errors - " + valid) 
        } else { 
         $('#form2 #response').removeClass('alert alert-danger').addClass('alert alert-warning').html("<i class='fa fa-spinner fa-spin'></i> Processing the form"); 
         var formData = $('#form2').serialize(); 
         submitForm(formData); 
        } 
       }); 
      }); 

      function submitForm(formData) { 
       $.ajax({ 
        type: 'POST', 
        url: 'comp/checker.php', 
        data: formData, 
        dataType: 'json', 
        cache: false, 
        timeout: 7000, 
        success: function(data) { 

         $('#form2 #response').removeClass('alert alert-warning').addClass((data.error === true) ? 'alert alert-danger' : 'alert alert-success').html(data.msg); 
        }, 
        error: function(XMLHttpRequest, textStatus, errorThrown) { 
         $('#form2 #response').html('Something else went wrong :/ ' + errorThrown + textStatus); 
        }, 
        complete: function(XMLHttpRequest, status) { 
         $('#form2')[0].reset();   
        } 
       }); 
      } 


     </script> 

PHP文件

<?php 
    //header('Content-type: application/json'); 
    sleep(5); 

    //if (!empty($_POST)) { 


     $date = date("d/m/Y"); 
     $fname = trim($_POST['fname']); 
     $lname = trim($_POST['lname']); 
     $email = trim($_POST['email']); 
     $postcode = trim($_POST['postcode']); 

     $number1 = $_POST['number1']; 
     $number2 = $_POST['number2']; 
     $number3 = $_POST['number3']; 
     $number4 = $_POST['number4']; 
     $number5 = $_POST['number5']; 
     $number6 = $_POST['number6']; 

     $totalnumber = $number1 . '' . $number2 . '' . $number3 . '' . $number4 . '' . $number5 . '' . $number6; 

     $list = array("$date, $fname, $lname, $email, $postcode, $totalnumber"); 

     $file = fopen("contacts_2.csv","a"); 

     foreach ($list as $line) {fputcsv($file,explode(',',$line));} 

     fclose($file); 

     //HEADER TO INDEX.PHP 


     $return['error'] = false; 
     $return['msg'] = "<p>Thanks for your feedback</p>"; 
     echo json_encode($return); 
     exit(); 

    //} else { 
    // $return['error'] = true; 
    // $return['msg'] = "<p>Something went wrong, please retry in a few minutes</p>"; 
    // echo json_encode($return); 
    // exit(); 
    //} 

    ?> 
+0

是法典规定由你完成代码?因为,我无法在'

'中看到'lname'。 –

+0

而且,从你的''中定义的'crackcode'是什么? –

+0

试试json_encode($ return,1); –

回答

1

,你是从服务器接收不是有效的JSON响应。 您可能以xml格式获得响应。 这可能是由于php页面产生错误。检查响应是否由php页面生成。同时检查php页面是否有足够的权限在生产服务器上执行。

检查浏览器控制台以查看由php文件生成的响应。

+0

干杯我认为它写入的CSV文件的权限也会保持不变,但显然我必须在我的CVS上拥有777权限才能工作,对可写CSV文件有什么正确的文件权限 – MrJoshFisher

+0

我没有知道什么是正确的文件许可。 777总能完成工作。 :-P – Joyson

+0

确实如此,如果安全是一个因素,666会起作用吗? – MrJoshFisher

0

我一直得到此错误:

"Unexpected token < in JSON at position 0"

解决方案:

  • 我被从JavaScript(与dataType: "json",通过AJAX)发送一个数到PHP。
  • 我没有意识到的是,这个数字在到达php之前会转换为字符串。
  • 因此,为了使用发送值在PHP端做查询等,我需要用intval将其转换回数字:

    $gender = intval($_POST["gender"]);

相关问题