0

在这里我应该在 php 中调用 web 服务,并且 web 服务的返回 json 存储在一个名为 $response 的变量中,然后我将该 json 传递给 javascript,这里我正在解析 json 并取决于类型员工和每种类型都有不同的属性,我正在提醒所有人,当我在另一个页面中执行相同的功能以测试它是否正在工作时,我通过硬编码为 var txt='' 赋予了价值,当我将 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 回答
0

如果响应包含引号,您将收到 js 语法错误。从那里开始不会处理任何事情。所以...没有警报。检查响应。转义引号。

于 2013-04-26T11:49:54.820 回答