我正在使用jQuery将PHP脚本的结果加载到变量中。该脚本被传递给用户使用GET请求键入的内容。我想把脚本吐出的内容放到<body>
标签中。这是我尝试过的:
JS:
function loader() {
var typed = $('#i').val(); //get what user typed in
$.get("script.php", {i: typed}, function(loaded) {dataloaded = loaded;});
alert($(dataloaded).find('body'))
}
但它只显示[Objec object]
。如何获得一个有用的值,它只是加载页面正文的内容?
我知道PHP有效,我只需要JS
脚本echo
类似1!!2
(两个数字由两个感叹号隔开)。
谢谢!
答案 0 :(得分:2)
您正在尝试访问由于AJAX调用的异步性质而可能未分配的dataloaded
。访问它的唯一安全的地方是成功回调。您还可以使用.html()
函数获取正文标记的内容:
function loader() {
var typed = $('#i').val(); //get what user typed in
$.get('script.php', { i: typed }, function(loaded) {
alert($(loaded).find('body').html());
});
}
另请注意,如果script.php
仅在没有1!!2
标记的情况下回显<body>
,则无效。
答案 1 :(得分:0)
不知道什么是console.log打印,很难说,但试试这些
alert($(dataloaded).find('body').html());
或者
alert($(dataloaded).find('body').text());
答案 2 :(得分:0)
使用JSON类型。我不确定您的Jquery脚本是否正确,但使用正确用法的JSON可以解决问题。即:
function loader() {
var typed = $('#i').val(); //get what user typed in
$.get("script.php", {i: typed}, function(loaded) {dataloaded = loaded;},"json");
alert($(dataloaded).find('body'))
}
编码JSON后来自script.php的POST变量。使用Php的json_encode()函数。您需要将变量创建为数组。例如:
<?php
$title = 'Hello World';
$content = 'Get well soon Japan!';
$arr=array('title'=>$title,'content'=>$content);
echo json_encode($arr);
?>
Jquery会是这样的:
function loader() {
var typed = $('#i').val(); //get what user typed in
$.get("script.php", {i: typed}, function(loaded) {var dataloaded = loaded.title+" "+loaded.content;},"json");
$("body").html(dataloaded);
}
在某些情况下,您可能需要使用Jquery的parseJson()函数。不要以为你需要这里。
答案 3 :(得分:0)
我更改了我尝试获取XML的页面。我正在使用$.find
从XML页面单独获取每个感兴趣的元素,这对于这个特定的应用程序来说非常适合。
这个问题已经消失,因为不再需要忽略head
部分,而且我只是抓取单个XML元素。
感谢您的所有时间和帮助!