0

我有一个问题 - 我需要通过 ajax 请求传递 jQuery 变量。

我在文件 ajax.php 中得到了两个 jquery 变量和许多无用的输出,不知何故我只需要获取这些变量的值。

就像是:

$.get('ajax.php', function (data) {
alert('data.var1'); alert(data.var2)
});
4

4 回答 4

0

如果您想在文档中添加脚本标签,您最好使用纯 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);
}

?>
于 2013-09-30T12:28:18.470 回答
0

如果您的ajax.php文件返回实际的 SCRIPT 标记和 JavaScript 输出,您可以通过全局变量访问它们,因为这是它们被分配的地方:

$.get('ajax.php', function (data) {
  alert(var1); alert(var2);
  // or: alert(window.var1); alert(window.var2);
});
于 2013-09-30T11:41:26.337 回答
0

看起来您需要将数据附加到页面 - 例如,您可以将其附加到隐藏的 div ,然后它将成为页面数据的一部分,您将拥有对其的脚本访问权限。像这样:

$.get('ajax.php', function (data) {    
    $('#yourDivId').html(data);    
    alert(var2); //no need for data.var2 
});
于 2013-09-30T11:38:58.290 回答
0

如果您将脚本标签与 ajax 响应一起使用,请尝试这样的操作,否则您必须创建脚本标签并将您的响应添加到它。

    $.get('ajax.php', function (data) {    
        $('yourdiv').html(data);    
        alert(var1); 
    });
于 2013-09-30T12:45:20.127 回答