我正在通过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);
}
?>
答案 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调用,然后成功,您使用一个函数将您在智能手机屏幕上收到的内容应用。