2016-09-14 7 views
4

これは私の角度コードです。フォーム提出コード。送信ボタンをクリックします。 JSON Parse error: Unrecognized token '<'このエラーが表示されます。空のレコードはDBに保存されます。私はこれのためにHTMLコードとPHPサーバーサイドコードを追加しました。JSON解析エラー:認識できないトークン '<'角度で

$scope.submitForm = function() { 

    $http({ 
     method : 'POST', 
     url  : 'http://localhost/youtubewebservice/checkOutt.php', 
     data : $scope.user, 
     dataType: 'json', 
     headers : {'Content-Type': 'application/x-www-form-urlencoded'} 
    }) 
     .success(function(data) { 
     if (data.errors) { 
      $scope.errorinputFName = data.errors.inputFName; 
      $scope.errorinputLName = data.errors.inputLName; 
     } 
     }); 
    }; 

HTMLコード

<form name="userForm" ng-submit="submitForm()"> 
<div class="form-group"> 
    <label>Name</label> 
    <input type="text" name="inputFName" class="form-control" ng-model="user.inputFName"> 
    <span ng-show="errorName">{{errorName}}</span> 
</div> 
<div class="form-group"> 
    <label>Email</label> 
    <input type="text" name="inputLName" class="form-control" ng-model="user.inputLName"> 
    <span ng-show="errorEmail">{{errorEmail}}</span> 
</div> 

<button type="submit" class="btn btn-primary">Submit</button> 
     <div id="sendmessageresponse"></div> 
</form> 

** PHPコード**

header("Access-Control-Allow-Origin: *"); 
header("Content-Type: application/json;charset=UTF-8"); 

$data = json_decode(file_get_contents("php://input")); 
$inputFName = mysql_real_escape_string($data->inputFName); 
$inputLName = mysql_real_escape_string($data->inputLName); 

$con = mysql_connect('localhost', 'root', ''); 
mysql_select_db('look4com_lk', $con); 

$qry_em = 'select count(*) as cnt from checkout where chkID ="' . $chkID . '"'; 
$qry_res = mysql_query($qry_em); 
$res = mysql_fetch_assoc($qry_res); 


if ($res['cnt'] == 0) { 
    $qry = 'INSERT INTO checkout (inputFName,inputLName) values ("' . $inputFName . '","' . $inputLName . '")'; 
    $qry_res = mysql_query($qry); 
    if ($qry_res) { 
     $arr = array('msg' => "User Created Successfully!!!", 'error' => ''); 
     $jsn = json_encode($arr); 
     print_r($jsn); 
    } else { 
     $arr = array('msg' => "", 'error' => 'Error In inserting record'); 
     $jsn = json_encode($arr); 
     print_r($jsn); 
    } 
} else { 
    $arr = array('msg' => "", 'error' => 'User Already exists with same email'); 
    $jsn = json_encode($arr); 
    print_r($jsn); 
} 
+0

チェックフィドラー – Sajeetharan

+0

問題はありません。 – moni123

+0

送信されているjsonの出力を貼り付けます。 – Samar

答えて

1

この特定の解析エラーは、出力が有効なJSON(当たり前)ではないことを示しています。あなたの出力はjson_encodeでフォーマットされているので、それはそうでなければなりません。 (しかし、私は通常配列としてのみprint_rを使用していますが...)

私の経験から、あなたのサーバはエラー/通知を出します。これはPHPが通常htmlで出力するものですから、<です。応答はクリーンなJSONであると主張しているので、サーバーが送信する実際の応答を調べることをお勧めします。私の前提は、コマンドラインからPHPスクリプトをテストしたので(つまり、php://input?)、サーバーはおそらく要求とは異なる処理を期待するでしょう。

ほとんどすべての適切なブラウザの[ネットワーク]タブ(通常は[F12] - [ネットワーク]タブ)でサーバーの応答を確認してから、フォームを再読み込みおよび/または再送信できます。 PHP問題を解決する際に問題がある場合は、PHPエラーメッセージを質問に追加するか、新しい質問をしてください。

最後に、mysql_*関数(廃止予定のmysqlライブラリ)を使用し、mysqli_*関数(mysqliライブラリ)またはPDOを使用してください。また、準備されたステートメントを使用する。

+0

'json_encode'とmysqli_を変更しましたが、同じエラーです。私は – moni123

+0

@ DRKを持っていますあなたは最初と最後の段落だけを読んでいる気がします。また、あなたのコメントは途切れているようです。 – Jakumi

+0

第2段落もやっていました。空のレコードが動作していない – moni123

-1

このコードのエラーが見つかりました。このコードは適切に動作します。誰にでも質問があります。おかげ

htmlコード

<div ng-controller="ProductController"> 
<form name="userForm" ng-submit="submitForm()"> 
<div class="form-group"> 
    <label>Name</label> 
    <input type="text" name="inputFName" class="form-control" ng-model="user.inputFName"> 
    <span ng-show="errorName">{{errorName}}</span> 
</div> 
<div class="form-group"> 
    <label>Email</label> 
    <input type="text" name="inputLName" class="form-control" ng-model="user.inputLName"> 
    <span ng-show="errorEmail">{{errorEmail}}</span> 
</div> 

<button type="submit" class="btn btn-primary">Submit</button> 
     <div id="sendmessageresponse"></div> 
</form> 
    </div> 

** PHPコード**

$data = json_decode(file_get_contents("php://input")); 
$inputFName = mysql_real_escape_string($data->inputFName); 
$inputLName = mysql_real_escape_string($data->inputLName); 



//localhost 
$con = mysql_connect('localhost', 'root', ''); 
mysql_select_db('look4com_lk', $con); 

$qry_em = 'select count(*) as cnt from checkout where inputFName ="' . $inputFName . '"'; 
$qry_res = mysql_query($qry_em); 
$res = mysql_fetch_assoc($qry_res); 



if ($res['cnt'] == 0) { 
    $qry = 'INSERT INTO checkout (inputFName,inputLName) values ("' . $inputFName . '","' . $inputLName . '")'; 
    $qry_res = mysql_query($qry); 
    if ($qry_res) { 
     $arr = array('msg' => "User Created Successfully!!!", 'error' => ''); 
     $jsn = json_encode($arr); 
     print_r($jsn); 
    } else { 
     $arr = array('msg' => "", 'error' => 'Error In inserting record'); 
     $jsn = json_encode($arr); 
     print_r($jsn); 
    } 
} else { 
    $arr = array('msg' => "", 'error' => 'User Already exists with same email'); 
    $jsn = json_encode($arr); 
    print_r($jsn); 
} 

**コントローラコード**を介してサーバに送信されているもの

$scope.submitForm = function() { 
    // Posting data to php file 
    $http({ 
     method : 'POST', 
     url  : 'http://localhost/youtubewebservice/checkOutt.php', 
     data : $scope.user, //forms user object 
     headers : {'Content-Type': 'application/x-www-form-urlencoded'} 
    }) 
     .success(function(data) { 
     if (data.errors) { 
      // Showing errors. 

      $scope.errorinputFName = data.errors.inputFName; 
      $scope.errorinputLName = data.errors.inputLName; 
      //$scope.errorMessage = data.errors.Message; 
     } else { 
      $scope.contactmessage = data.contactmessage; 

     //data: {Name: $scope.Name, Email: $scope.Email, Message: $scope.Message} 
     } 


     }); 
    }; 
関連する問題