从PHP获取不同的JSON响应

时间:2016-01-14 12:48:44

标签: php json ajax cordova

我正在通过phonegap制作应用。 我正在编写一个读取票证代码的脚本(两个查询,如果存在于数据库中,则首先更新票证状态,然后在另一个表上写入日志)。这很好。

但是现在,我想用json获得不同的响应(有效或无效),但我找不到一种方法来读取数据并显示不同的响应。

index.html上的脚本

$(function() {
  $("#savedata").click(function() {
    var fcode = $("#code").val();
    var fuuid = $("#uuid").val();
    $("#code").val(" ");
    $("#uuid").val(" ");
     $.ajax({type: "POST", 
        url: "http://phonegap.localhost/test/www/db/update.php",
                  data: ({code: fcode, uuid: fuuid}),
                  cache: false,
                  dataType: "text",
                  success: Send
                });    
    });
    function Send(data){    
      document.getElementById('entrada').innerHTML = ("Done!");
    }
  });

Update.php

<?php
require_once('conndb.php');

$code= $_POST['code'];
$uuid = $_POST['uuid'];
$data=array();

$sql = "SELECT code FROM ticket WHERE code='$code'";
$result = mysql_query($sql);

if(mysql_num_rows($result) >0){ 
    $sql="UPDATE ticket SET redeem_status= 1 WHERE code = '$code'";
    $resultado=mysql_query($sql);
    $sql2="INSERT INTO log (id, codigo, hora, uuid, valido) VALUES (NULL, '$code', CURRENT_TIMESTAMP, '$uuid', 1)";
    $resultado2=mysql_query($sql2);
    }
    $val['status'] = 1;
    echo json_encode($val);
}else{
    $sql2="INSERT INTO log (id, codigo, hora, uuid, valido) VALUES (NULL, '$code', CURRENT_TIMESTAMP, '$uuid', 0)";
    $resultado2=mysql_query($sql2);
    $val['status'] = 0;
    echo json_encode($val);
}
?>

2 个答案:

答案 0 :(得分:0)

在您的javascript代码中,您期望TEXT数据,但在PHP脚本中您发送json。所以将dataType更改为json并修复函数Send

这是简单的解决方案

$(function() {
  $("#savedata").click(function() {
    var fcode = $("#code").val();
    var fuuid = $("#uuid").val();
    $("#code").val(" ");
    $("#uuid").val(" ");
     $.ajax({type: "POST", 
        url: "http://phonegap.localhost/test/www/db/update.php",
                  data: ({code: fcode, uuid: fuuid}),
                  cache: false,
                  dataType: "json",
                  success: Send
                });    
    });
    function Send(data){    
      if (data.status == 0){
         document.getElementById('entrada').innerHTML = ("Error!");
      }
      else{
         document.getElementById('entrada').innerHTML = ("Done!");
      } 
    }
  });

答案 1 :(得分:0)

你只需要创建一个新的PHP页面,它正在读取数据库中的数据,然后将其作为JSON返回(就像你现在正在做的那样)并在按钮上绑定一个动作,例如在你的phonegap应用程序中使用jQuery启动对此页面的Ajax调用,然后成功,您使用一个函数将您在智能手机屏幕上收到的内容应用。