我找到了这个:http://code.google.com/p/jquery-json , 一个模拟 json_encode PHP 函数的插件。
所以我尝试了这个:
var datasend = {};
datasend['name'] = $(".chat_username").val();
datasend['message'] = $(".chat_text").val();
encoded_send = $.toJSON( datasend );
$.ajax({
type: "POST",
url: "/apps/chat_write",
data: {send_data: encoded_send },
success: function(response){
if(response!="OK"){
alert("Παρουσιάστηκε πρόβλημα.Κάντε ανανέωση την σελίδα ή προσπαθήστε ξανά αργότερα.");
}else{
$(".chat_text").val("");
$(".chat_count").val("0/100");
}
}
});
第一个问题?我有这个
$.ajax({
type: "POST",
url: "/apps/chat_write",
data: "name="+escape($(".chat_username").val())+"&message="+escape($(".chat_text").val()),
success: function(response){
if(response!="OK"){
alert("Παρουσιάστηκε πρόβλημα.Κάντε ανανέωση την σελίδα ή προσπαθήστε ξανά αργότερα.");
}else{
$(".chat_text").val("");
$(".chat_count").val("0/100");
}
}
});
return false;
});
而且我对希腊字符有疑问.. 所以我决定使用 json 对象 如果此代码正确,我如何从 PHP 解析 JSON 对象?如果不正确,错误在哪里?
谢谢
最佳答案
(在我继续你的功能之前..)
您似乎误解了 JSON 的用途。向服务器传输数据时,无需将数据替换为 JSON 字符串。一种更简单的方法是通过 data
添加参数,并通过 $_POST
检索它们。
例子:
$.ajax({
type: "POST",
url: "/apps/chat_write",
data: {
name: $(".chat_username").val(),
message: $(".chat_text").val()
},
dataType: "json", /* This parameter is ONLY used at the response */
success: function(response){
//response is a deserialized JSON string
}
});
简单的 PHP 示例:
<?php
header('Content-Type: application/json');
$example = array("what" => "This");
echo json_encode($example); //Echos: {"what":"This"}
?>
服务器响应中应使用 JSON。可以使用 json_encode
序列化 PHP 对象。确保在发送任何输出之前使用 header('Content-Type: application/json');
。
(如果您仍想在发送前对数据进行 JSON 编码)
使用 json_decode
反序列化 JSON 字符串的 PHP 函数。
不过,您当前的代码必须修复。
var datasend = {};
datasend['name'] = $(".chat_username").val();
datasend['message'] = $(".chat_text").val();
var encoded_send = $.toJSON( datasend );
$.ajax({
type: "POST",
url: "/apps/chat_write",
data: {send_data: encoded_send },
dataType: "json", /* Can be removed if the RESPONSE is not JSON*/
success: function(response){
if(response!="OK"){
alert("Παρουσιάστηκε πρόβλημα.Κάντε ανανέωση την σελίδα ή προσπαθήστε ξανά αργότερα.");
}else{
$(".chat_text").val("");
$(".chat_count").val("0/100");
}
}
});
关于php - 编码为 json 对象并通过 ajax 发送,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8687860/