2012-02-16 46 views
1

我想获得一个sql查询运行下拉菜单选择。以下是我迄今为止:更改下拉菜单做jQuery的功能和sql查询

<script> 
$('#templateid').change(function(DoUpdateOnSelect) { 
$.post('page.edit.php?page_id=(-->Need help in getting this id from the page url<--)&template='+this.options[this.selectedIndex].value); 
}); 
</script> 

而且下拉:

<select name="templateid" id="templateid" onchange="DoUpdateOnSelect"> 
    <option >Contact</option> 
    <option >News</option> 
    <option >Home</option> 
</select> 

page.edit.php有它的条件,这将运行SQL查询,如果它检测到的页面ID和模板在URL中。从选择下拉菜单中,用jquery抓取模板参数值(请让我知道该部分是否在jquery中设置错误)。我无法弄清楚如何从页面的当前网址抓取page_id参数,并将其插入到函数中,以便page.edit.php?page_id = 1 & template = Home将被正确输出的URL 。

如果您需要更多信息,请让我知道。提前致谢。

编辑:基于回答以下:

function querystring(name) 
{ 
name = name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]"); 
var regexS = "[\\?&]"+name+"=([^&#]*)"; 
var regex = new RegExp(regexS); 
var results = regex.exec(window.location.href); 
if(results == null) 
    return ""; 
else 
    return results[1]; 
} 
$('#templateid').change(function() { 
    var page_id = querystring('page_id'); 
    var url = '?VIEW=EDITPAGE&linklabel='+page_id+'&template='+(this.options[this.selectedIndex].value); 
$.post(url); 
}); 

NO变化正在发生WHEN我进行选择的下拉菜单

+0

[在JavaScript中获取查询字符串值](http:// stackoverf low.com/questions/901115/get-query-string-values-in-javascript) – 2012-02-16 01:37:21

+0

感谢Michael对于这个问题的链接,我试着尽可能多地查看它们.. – 2012-02-16 01:47:59

回答

1

为了从网址中获取page_id,您应该使用如下功能:

function querystring(name) 
{ 
    name = name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]"); 
    var regexS = "[\\?&]"+name+"=([^&#]*)"; 
    var regex = new RegExp(regexS); 
    var results = regex.exec(window.location.href); 
    if(results == null) 
    return ""; 
    else 
    return results[1]; 
} 

,那么你可以用

var page_id = querystring('page_id'); 

检索它的话,你的onChange处理看起来是这样的:

$('#templateid').change(function() { 
    page_id = querystring('page_id'); 
    var url = 'page.edit.php?page_id='+page_id+'&template='+this.options[this.selectedIndex].value); 
    $.post(url, function(response){ 
     //your logic here 
    }); 
}); 

哦,请从选择标记删除onchange属性:

<select name="templateid" id="templateid"> 
    <option >Contact</option> 
    <option >News</option> 
    <option >Home</option> 
</select> 
+0

使用#templateid.change获取语法错误功能 – 2012-02-16 02:08:51

+0

对不起,我不知道javascript – 2012-02-16 02:09:00

+0

现在试试看,page_id没有定义 – 2012-02-16 02:17:25

1

尝试使用这个插件

$.extend({ 
    getUrlVars: function(){ 
    var vars = [], hash; 
    var hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&'); 
    for(var i = 0; i < hashes.length; i++) 
    { 
     hash = hashes[i].split('='); 
     vars.push(hash[0]); 
     vars[hash[0]] = hash[1]; 
    } 
    return vars; 
    }, 
    getUrlVar: function(name){ 
    return $.getUrlVars()[name]; 
    } 
});