0

ここでは、php で Web サービスを呼び出すことになっています。Web サービスの戻り json は $response という変数に格納されます。次に、その json を javascript に渡します。ここでは、json を解析し、型に応じて従業員と各タイプには異なる属性があります。テストのために別のページで同じ機能を実行したときに、すべてに警告しています.php Webサービスを私が試したものは何もありません.javascriptコンソールにエラーが表示されないので混乱しています。

 <?php
session_start();
$regid=$_SESSION['product_registration_id'];
//echo $regid;
$details=array(
'product_registration_id'=> "$regid");
//coverting the vlaues collected from form into json
//calling the web service
$url='webservice url';
    $data=$details;
    $ch=curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_POST, true);
    curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($details));
    curl_setopt($ch, CURLOPT_HTTPHEADER, array("Content-Type: application/json"));
    $response= curl_exec($ch);
    echo ("The Server Response is:" .$response);
    curl_close($ch);
    json_decode($response);
    $json_a=json_decode($response,true);
    echo $json_a[expired];
    echo $json_a[account_detail][0];
 ?>
</div>
    <script>

var txt = '<?php echo $response ?>';
alert(txt);
//var jsonData = eval ("(" + txt + ")");
var jsonData = JSON.parse(txt);
for (var i = 0; i < jsonData.employees.length; i++) {
var counter = jsonData.employees[i];
//console.log(counter.counter_name);
alert(counter.type);
if(counter.type=="0")
    {
      alert(counter.building_name);
      alert(counter.org_name);
      alert(counter.user_name);
      alert(counter.name);
      alert(counter.loc_name);
      alert(counter.email_id);
      alert(counter.password);
    }
if(counter.type=="1")
    {
        alert(counter.user_name);
        alert(counter.name);
        alert(counter.password);
        alert(counter.email_id);
    }
    if(counter.type=="2")
        {
            alert(counter.building_name);
            alert(counter.org_name);
            alert(counter.user_name);
            alert(counter.opr_code);
            alert(counter.name);
            alert(counter.loc_name);
            alert(counter.email_id);
            alert(counter.password);
        }
        if(counter.type=="3")
            {
               alert(counter.building_name);
               alert(counter.org_name);
               alert(counter.machine_type);
               alert(counter.activate_status);
               alert(counter.machine_name);
               alert(counter.entrance_exit_name);
               alert(counter.entrance_or_exit);
               alert(counter.loc_name);
               alert(counter.activation_code);
            }
}

</script>
4

2 に答える 2

0

PHP配列をJavaScriptの配列にしたい場合は、次のことを行う必要があります。

<?php echo json_encode($response) ?>

これは、javascript で解析する必要はありません。echo は、javascript では配列またはオブジェクト定義である好みの何かを返すため、既に配列になってい{'message': 'hellew world'}ます['value1','value2']

したがって、javascript での解析を削除します。

于 2013-04-26T08:07:05.930 に答える