2016-01-14 134 views
-1

Im在手机上制作应用程序。 我在做一个脚本来读取一个票据代码(两个查询,首先更新票据状态,如果存在数据库和第二个写在另一个表上的日志)。这工作正常。从PHP获取不同的JSON响应

但现在,我想用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

在JavaScript代码中,你希望TEXT数据,但在PHP脚本您发送JSON。因此,改变数据类型为JSON和修复功能发送

下面是简单的解决方案

$(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!"); 
     } 
    } 
    }); 
+0

当我改变dataType不要返回任何东西。 – MidouCloud

+1

add header('Content-type:application/json'); 到php-script开头 – KLin

+0

仍然不工作,是不是在读取“if(data.status == 0)”放“console.log(data)”之前的json – MidouCloud

0

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

+0

我尝试了类似的第二个功能,但不工作 – MidouCloud

+0

我无法找到一种方法来准备json,这就是我有问题 – MidouCloud