JS $ .get或$ .getScript将数据传递给文件

时间:2016-11-09 12:52:12

标签: javascript jquery

我想将数据传递给js文件。但是不能得到工作。

js='article.js';

function loadjs(js){
$.get(js,{ name: "test" });
}

article.js

alert(name);

如果我发出警报(' test');我收到了文件的回复,所以我知道它有效。 也不能使用全局变量。

有一种简单的方法可以将数据发送到文件并显示它吗?

编辑澄清 (是的,我可以使用angelar,但我不会)

上传它会触发' pagina'缺少变量。 (它的动态)。 所有的' php / html'文件已加载。 你会得到你在链接中看到的东西。 example

当我点击一行时我想要功能pagina();到目前为止加载行的内容是如此的好。但要显示我想要的数据。我想向JS文件发送一个ID,并在JS文件中使用$ .post(php)来获取数据json。如果我在$ .post id = 1中直接设置了ID,那就可以了。

所以不要让它更加混乱。我想将一个id发送到js文件JS $ .get或$ .getScript。

function pagina(menu,frame,vars,crum,js,togglezoeken,voorwaarden){
'use strict';
if(!menu){$('#frame').show();}
if(menu){
$('#loader-zoeken').hide(); 
$('#loader-bijwerken').hide();  
$('#loader-pagina').show(); 
$('#menu').hide();
$('#frame').empty();
$('#menu').load(menu+vars,{noncache: new Date().getTime()}, function() {$('#menu').foundation();});}    
if(crum==1){$('#breadcrumbs').load('/opbouw/frames/breadcrumbs.php?'+vars,{noncache: new Date().getTime()}, function() {});}
$('#frame').load(frame+vars+'&crum='+crum,{noncache: new Date().getTime()}, function() {
if(togglezoeken){$('#uitgebreidzoeken').toggle();}
if(crum==1){$('#breadcrumbs').show();}else{$('#breadcrumbs').hide();}

if(js){
$.get( js,{ name: "test" });
}
else{
$('#loader-pagina').hide();
$('#menu').show();
$('#frame').show();
}
//if(voorwaarden==1){popup('/opbouw/frames/voorwaarden.php','','/opbouw/js/voorwaarden.js');}
$('#frame').foundation();
});
}

1 个答案:

答案 0 :(得分:1)

你不能这样做。 $.get用于AJAX / HTTP(s)请求,您的文件以这种方式不会接受发送给它的数据。

要实现此目的,您必须在article.js上使用服务器端端点。

让我们说:

function loadjs( js ) {
    $.get(js, { name: "test" });
}

你打电话给loadjs功能:

loadjs('article.js');

在您的服务器上,您必须有一个服务器端端点指向请求:/article.js

您可以使用PHP或express来实现node.js:

router.get('article.js', function(req, res, next) {
    res.json( req.query.data );
});

或者在PHP中(请注意,在Apache中,您必须使用mod_rewrite并使用.htaccess或在虚拟主机配置中启用它:

$req = $_SERVER['REQUEST_URI'];

if($req == 'article.js') {
    echo json_encode(array('data' => $_GET['data']));
    exit(0); // end the script here
}

从上面使用的任何一种方式,您都可以有效地将数据发送到您的脚本/端点,然后您可以进一步处理它。

虽然您的loadjs函数只发送请求并且没有处理响应,但您可以使用$.get中的回调函数执行以下操作:

$.get(js, { name: "test" }, function(data) {
    alert(data); // you will alert the data from the JSON response
});

可悲的是,你还没有描述你真正需要的东西,到目前为止,这是我可以帮助你的。