2012-10-03 52 views
0

一个字符串,我意识到我是多么糟糕的JavaScript :(的Javascript - 添加变量的代码

我有这样的:

function getUrlVars() { 
var vars = {}; 
var parts = window.location.href.replace(/[?&]+([^=&]+)=([^&]*)/gi,  
function(m,key,value) { 
    vars[key] = value; 
}); 
return vars; 
} 

var theidis = getUrlVars()["id"]; 

$.tzPOST = function(action,data,callback){ 
$.post('php/ajax.php?id='+theidis,'&action='+action,data,callback,'json'); 
} 

$.tzGET = function(action,data,callback){ 
$.get('php/ajax.php?id='+theidis,'&action='+action,data,callback,'json'); 
} 

首先得到? id = value参数正确,我用一个alert(theidis)进行测试

我期待做一件简单的事情 - 对不起,如果th是愚蠢的 - - 我已经这样工作了很长时间,以至于我开始监督事情。

我想要一个?id =值被添加到php/ajax.php。我尝试了以上,但它似乎并没有工作。我也尝试过添加它。

预先感谢您。 :-)

回答

1

$.get调用指定

'php/ajax.php?id='+theidis, '&action='+action, data ... 

它看起来像你传递数据的两倍。 &action='+action应该是您的数据参数,或data。你的意思是连接&action部分到URL中吗?

+0

嗯,它们是三个独立的功能。我知道剧本适用于“theidis”的作品。我正在寻找 - 在调用文件时 - 在运行脚本时向数据库中的ID事件添加另一个称为ID的参数。它甚至有可能吗?或者我自愿将我的头撞到了墙上.- – Christian

+1

@Christian:['.get'](http://api.jquery.com/jQuery.get/)具有签名'get(url [,data ] [,success(data,textStatus,jqXHR)] [,dataType])''。所以你的第一个参数总是你的URL,它可能包含额外的数据,通过传递查询字符串。如果你想添加更多的数据,你可以在第二个参数中做到这一点。这可能是一个字符串或一个对象。你当前正在传递''&action ='+ action'作为你的第二个参数。然后你传递'data',当你已经传递了字符串数据时,这是没有意义的。你的第三个参数应该是回调。 –

+0

因此,一切都可以结合到+动作? – Christian

1

你可能是指:

$.tzGET = function(action,data,callback){ 
    $.get('php/ajax.php?id='+theidis + '&action='+action,data,callback,'json'); 
} 

更改,标志+迹象。

注意!:data如果您将字符串指向URL的查询字符串,则该字符应该为空。

+0

我没有在这里的代码 - 但这应该在ID中调用?数据应该是空的?对不起,如果这是一个愚蠢的问题。 :-) – Christian