JavaScriptの機能をURLのパラメータの値をテキストボックスに入力した値で変更しようとしています。なぜなら私はコードデザイナーだがグラフは一つだからだ。 これは私が「市」のパラメータを変更する必要があるURLです:URLのパラメータの値を変更する
http://server/ad_new_customer.php?&city=&uri=http://server/adauga_exp.php
私はこのようなjQueryを使ってMySQLのクエリを介して入力テキストボックス内のデータを生成しています:
<input type='text' id='city' name='city' style="width:190px; align:left;" value="<?php echo $city; ?>" /> </td>
<script type="text/javascript">
//change the value of parameter in the URL function
function changeURI(key, value) {
var query = document.location.search.substring(1);
var query_q = query.split("?");
var vars = query_q[1].split("&");
for (var i = 0; i < vars.length; i++) {
var pair = vars[i].split("=");
if (pair[0] == key) {
vars[i] = pair[0] + "=" + value;
}
}
return vars.join("&");
}
//jQuery making the auto-suggestion query for the input ID
$().ready(function() {
$("#city").autocomplete("core/exp_city.php", {
width: 340,
matchContains: true,
selectFirst: false
}).return(changeURI("city", this.value}));
});
</script>
どのようにすることができます選択した値のパラメータを変更しますか? もう一度、謙虚なデザイナーに助言してください。 ありがとうございました!
L.E.
私は、回避策を作ったこの1をchangeURI()関数を変更しました:StackOverflowの上で発見
function changeURI(key, value)
{
key = escape(key); value = escape(value);
var kvp = document.location.search.substr(1).split('&');
var i=kvp.length; var x; while(i--)
{
x = kvp[i].split('=');
if (x[0]==key)
{
x[1] = value;
kvp[i] = x.join('=');
break;
}
}
if(i<0) {
kvp[kvp.length] = [key,value].join('=');
}else{
//this will reload the page, it's likely better to store this until finished
document.location.search = kvp.join('&');
}
}
と$ .result()関数でjQueryのクエリからそれを呼び出す:
<script type="text/javascript">
$().ready(function() {
$("#city").autocomplete("core/exp_city.php", {
width: 340,
matchContains: true,
selectFirst: false
}).result(function() {changeURI("city",this.value)});
});
</script>
ありがとう@sthobrien、あなたは正しいです、私はquery_q変数をスキップしましたが、それでも働いていませんでした。とにかく私は別のchangeURI()関数で動作するようになりました。ありがとうございました。 – sealview