我的问题是:我的php脚本如何发送json类型数据
并收到返回成功或完成的功能?
我试图让this聊天功能在我的网站上工作
因为它不起作用,所以我在代码中创建了一个最小化部分以进行检查
如果与json方法有关.
我只测试了在处理phpscript之后是否可以找回会话名称
我得到的是“未定义”而不是“ johndoe”.
我不知道可能是什么问题.
显然,如果您在创建者页面上看到注释,则该脚本对于其他脚本来说效果很好.
这是我的测试代码
session_start();
$_SESSION['username'] = "johndoe" ;// Must be already set
?>
$(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);
}
});
}
});
//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": [
]
}
exit(0);
}
?>
谢谢,理查德
解决方法:
理查德,您应该研究PHP中的json_encode()函数.它将数组快速转换为JSON,并使您不必处理大量数据的JSON语法的细微差别.
更新:修改后的代码
session_start();
$_SESSION['username'] = "johndoe" ;// Must be already set
?>
$(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);
}
});
}
});
if ($_GET['action'] == "startjson") {
startjsonSession();
}
function startjsonSession() {
$items = '';
print json_encode(array(
"username" => "bob",
"items" => array(
"item1" => "sandwich",
"item2" => "applejuice"
)
));
}
?>
标签:php,jquery,json,ajax
来源: https://codeday.me/bug/20191010/1883443.html