我有两个问题:
如果我将ajax请求发送到自己的页面(从abc.php到abc.php),就像这样:
$.ajax({
type: "POST",
url: "some.php",
data: "name=John&location=Boston",
success: function(msg){
alert( "Data Saved: " + msg );
}
});
如果我有一个完整的网页(包含div,form,imgs),msg
变量将包含什么?它会包含整个HTML代码源吗?如何在根据$variable
和Name
查询数据库以查找记录之后,告诉ajax只返回特定的详细信息(例如php Location
)。记住some.php是包含ajax脚本的同一文件。
我想创建一个.php脚本,其中包含可管理数据库的所有查询,如下所示:
if(isset($_GET['option']) && $_GET['option'] == 'insert') { code here .. and echo div`s .. etc) }
if(isset($_GET['option']) && $_GET['option'] == 'del') { code here .. and echo div`s .. etc) }
if(isset($_GET['option']) && $_GET['option'] == 'update') { code here .. and echo div`s .. etc) }
if(isset($_GET['option']) && $_GET['option'] == 'find') { code here .. and echo div`s .. etc) }
if(isset($_GET['option']) && $_GET['option'] == 'abc') { code here .. and echo div`s .. etc) }
我想基于option
运行ajax请求并检索特定结果(如php $ variables ...等等)
我该怎么做?
无论如何,最重要的问题是如果收到ajax请求的页面已包含$variable
,我如何获得仅包含php $array
或<html><body><divs><tables><h4><h3>.... etc
的ajax.result?
因为jquery.ajax()
的文档非常复杂/复杂,所以选项如accepts, async, complete, contentType, context .. and so on
。
非常感谢。
答案 0 :(得分:1)
您可以使用dataType选项指定您希望从服务器返回的数据类型。在您的情况下,JSON可能是一个不错的选择,因为php页面可以返回以下形式的字符串:
{name:value}
这很容易作为客户端上的JSON对象进行处理。
e.g。 Found on this page
$.ajax({
url: url,
dataType: 'json',
data: data,
success: callback
});
然后,您的回调函数将处理JSON并检索该值。从链接中可以看到,您可以使用getJSON()方法作为快捷方式。
答案 1 :(得分:1)
响应变量msg
将包含您请求的页面的完整html。要获取php变量,您需要以javascript可以理解的方式打包变量,这通常意味着以json格式序列化对象/变量,然后在$.parseJSON
或eval
上使用{ {1}}将结果字符串转换为javascript对象/数组。
答案 2 :(得分:0)
答案是,不要对已经包含<html><body
等的页面发出ajax请求,请使用没有该内容的页面。
你需要的只是
echo $variable;