我有一个问题 - 我需要通过 ajax 请求传递 jQuery 变量。
我在文件 ajax.php 中得到了两个 jquery 变量和许多无用的输出,不知何故我只需要获取这些变量的值。
就像是:
$.get('ajax.php', function (data) {
alert('data.var1'); alert(data.var2)
});
如果您想在文档中添加脚本标签,您最好使用纯 JavaScript。
var script = document.createElement("script");
script.type = "text/javascript";
script.src = "ajax.php";
document.body.appendChild(script);
如果您只想从 php 文件中获取一些值,则最好只请求这些值而不需要不需要的垃圾。这可以作为 json 来完成。但是,您需要修改 php 脚本以输出正确的数据类型。
$.ajax({
url: 'ajax.php?get=json',
type: 'GET',
dataType: 'JSON'
})
.done(function(data) {
console.log("success");
alert(data.var1+' '+data.var1);
})
.fail(function() {
console.log("error");
})
.always(function() {
console.log("complete");
});
//php
<?php>
if(isset($_GET['get']) && $_GET['get']=='json'){
$ar=array();
$ar['var1']='hello';
$ar['var2']='hello';
echo json_encode($ar);
}
?>
如果您的ajax.php文件返回实际的 SCRIPT 标记和 JavaScript 输出,您可以通过全局变量访问它们,因为这是它们被分配的地方:
$.get('ajax.php', function (data) {
alert(var1); alert(var2);
// or: alert(window.var1); alert(window.var2);
});
看起来您需要将数据附加到页面 - 例如,您可以将其附加到隐藏的 div ,然后它将成为页面数据的一部分,您将拥有对其的脚本访问权限。像这样:
$.get('ajax.php', function (data) {
$('#yourDivId').html(data);
alert(var2); //no need for data.var2
});
如果您将脚本标签与 ajax 响应一起使用,请尝试这样的操作,否则您必须创建脚本标签并将您的响应添加到它。
$.get('ajax.php', function (data) {
$('yourdiv').html(data);
alert(var1);
});