2012-02-16 14 views
1

ドロップダウンメニュー選択で実行するSQLクエリを取得しようとしています。ここで私はこれまで持っているものです。変更jquery関数とSQLクエリdoドロップダウンメニュー

<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は、ページIDを検出した場合、SQLクエリを実行しますその上に条件を持っていますURLのテンプレートテンプレートパラメータの値は、j​​queryで取得されます(jqueryでその部分が正しく設定されているかどうかを教えてください)。私が理解できないことは、ページの現在のURLからpage_idパラメータを取得し、それを関数に挿入する方法です。page.edit.php?page_id = 1 & template =ホームは正しく出力されたURLになります。

詳細情報が必要な場合はお知らせください。前もって感謝します。

EDIT下記回答に基づいて:

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); 
}); 

私はDROPダウンメニューで選択を行いWHEN NO CHANGEは起こりません

+0

[JavaScriptでクエリ文字列値を取得する](http:// stackoverf low.com/questions/901115/get-query-values-in-javascript) –

+0

マイケルにその質問リンクをおねがいします。できるだけ多くのものを見てみました。 –

答えて

1

を使用してみてくださいURLから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で構文エラーが発生しました機能 –

+0

申し訳ありませんが、JavaScriptを知らない –

+0

今すぐ試してみてください、page_idは定義されていません –

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]; 
    } 
}); 

関連する問題