0
function start(){

$('#detailsPage').live('pageshow', function(event) {
    var user_name = getUrlVars()["user_name"];
    //var user_name = "studentB";
    $.getJSON('http://mydomain.com/getStudent.php?user_name='+user_name+'&jsoncallback=?', displayStudent);
});
}

上がjs、下がphp

<?php 

header("Cache-Control: no-cache, must-revalidate");
header("Expires: Sat, 26 Jul 1997 05:00:00 GMT");
header("Content-type: application/json");

include('mysqlConfig.php');

$user_name = $_GET["user_name"];

$sql="SELECT * FROM tbl_user WHERE user_name='$user_name'";
$result=mysql_query($sql);


$rows = array();

//retrieve and print every record
while($r = mysql_fetch_assoc($result)){
    // $rows[] = $r; has the same effect, without the superfluous data attribute
    $rows[] = array('data' => $r);
}

// now all the rows have been fetched, it can be encoded
//echo json_encode($rows);

$data = json_encode($rows);
echo $_GET['jsoncallback'] . '(' . $data . ');';
?>

この方法が機能するかどうか疑問に思っていますか?私のアプリでは、n番目はディスプレイです。jsoncallback 値が間違って実装されているかどうかはわかりません。あなたの意見は大きな助けになります。ありがとう

4

1 に答える 1

0

コールバック関数は、次の 3 つのパラメーターを取る必要があります。

データ、textStatus、jqXHR

data は、php ページによって返されるものです。

したがって、JS は次のようになります。

function start(){

    $('#detailsPage').live('pageshow', function(event) {
        var user_name = getUrlVars()["user_name"];
        //var user_name = "studentB";
        $.getJSON('http://mydomain.com/getStudent.php?user_name='+user_name, displayStudent);
    });
}

function displayStudent (data, textStatus, jqXHR) {
    // data will be the json encoded $rows data from your php file 
    // ... do stuff here
}

あなたはPHPだと思います(私は12年間PHPを使用していません...)、次のようにする必要があります。

<?php 

header("Cache-Control: no-cache, must-revalidate");
header("Expires: Sat, 26 Jul 1997 05:00:00 GMT");    
header("Content-type: application/json");

include('mysqlConfig.php');

$user_name = $_GET["user_name"];

$sql="SELECT * FROM tbl_user WHERE user_name='$user_name'";
$result=mysql_query($sql);


$rows = array();

//retrieve and print every record
while($r = mysql_fetch_assoc($result)){
    // $rows[] = $r; has the same effect, without the superfluous data attribute
    $rows[] = array('data' => $r);
}

// now all the rows have been fetched, it can be encoded

echo json_encode($rows);
?>
于 2013-03-17T23:08:52.310 に答える