[英]get json data back from ajax call
我的問題是:我的php腳本如何發送json類型數據並接收回成功或完整函數?
我試圖讓此聊天功能在我的網站上正常工作,因為它不起作用,我在代碼上創建了一個最小化的部分,以檢查它是否與json方法有關。
我只測試了在處理phpscript之后是否可以找回會話名,我得到的是“未定義”而不是“ johndoe”。
我不知道可能是什么問題。 顯然,如果您在創建者頁面上看到注釋,則該腳本對於其他腳本來說效果很好。
這是我的測試代碼
<?php
session_start();
$_SESSION['username'] = "johndoe" ;// Must be already set
?>
<script type="text/javascript" src="includes/jquery.js"></script>
<script language="JavaScript">
$(document).ready(function(){
$("#testjson").click(function(e){
startJsonSession();
return false;
});
function startJsonSession(){
$.ajax({
url: "jsontest.php?action=startjson",
cache: false,
dataType: "json",
complete: function(data) {
username = data.username;
alert(username);
}
});
}
});
</script>
<?php
//the php script
if ($_GET['action'] == "startjson") { startjsonSession(); }
function startjsonSession() {
$items = '';
/*if (!empty($_SESSION['openChatBoxes'])) {
foreach ($_SESSION['openChatBoxes'] as $chatbox => $void) {
$items .= chatBoxSession($chatbox);
}
}
if ($items != '') {
$items = substr($items, 0, -1);
}*/
header('Content-type: application/json');
?>
{
"username": "<?php echo $_SESSION['username'];?>",
"items": [
<?php echo $items;?>
]
}
<?php
exit(0);
}
?>
謝謝,理查德
理查德,您應該研究PHP中的json_encode()函數。 它將數組快速轉換為JSON,並使您不必處理大量數據的JSON語法的細微差別。
更新:修改后的代碼
<?php
session_start();
$_SESSION['username'] = "johndoe" ;// Must be already set
?>
<script type="text/javascript" src="includes/jquery.js"></script>
<script language="JavaScript">
$(document).ready(function(){
$("#testjson").click(function(e){
startJsonSession();
return false;
});
function startJsonSession(){
$.ajax({
url: "jsontest.php?action=startjson",
cache: false,
dataType: "json",
complete: function(data) {
username = data.username;
alert(username);
}
});
}
});
</script>
<?php
if ($_GET['action'] == "startjson") {
startjsonSession();
}
function startjsonSession() {
$items = '';
print json_encode(array(
"username" => "bob",
"items" => array(
"item1" => "sandwich",
"item2" => "applejuice"
)
));
}
?>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.