私は私のヘッダーファイルにドロップダウン要素を持っています。 、php - ドロップダウン後の現在のページをリロードします。
今<script>
$(document).ready(function() {
var url = "<?php echo file2.php;?>";
$('#currency').change(function() {
$.ajax({
data: $('#switchcurrency').serialize(),
type: "POST",
url: url,
success: function(response) {
alert(response);
}
});
});
});
</script>
:これは別のファイルへの投稿、選択した要素のAjaxスクリプトによって処理され
<div class = "currencyswitcher">
<span class = "currencylabel"><strong>Currency Switcher</strong> </span>
<form method="post" id="switchcurrency" name = "switchcurrency">
<select name = "currency" id = "currency" >
<option value = "USD"> USD </option>
<option value = "KES"> KES </option>
</select>
</form>
</div>
:ドロップダウンは、私は私のサイト上でユーザーが選択したい2つの通貨が含まれています私のfile2.phpで私は私のドロップダウンから値を渡して、私はページsitename.php/page1にしてドロップダウンから選択した後、私はページのURLにそれを追加したい、ページsitename.php/page1?currency = USDに更新され、sitename.php/page2上にあった場合、選択時にページがsitename.php/page2に更新されますか?currency = KESなど...
これは私のダンプ以上のことから、私のfile2.php(ファイルAjaxはに投稿された)
if(isset($_POST["currency"]))
{
$key = key($_POST);
$value = $_POST["currency"];
$params = array_merge($_GET, array($key => $value));
$new_query_string = http_build_query($params);
$url = (empty($_SERVER['HTTPS'])?"http://":"https://") . $_SERVER['REQUEST_URI'] . "?" . $new_query_string;
var_dump($url);
}
は私のヘッダページ、すなわち
var_dump($url); = mysiteurl/header.php?currency=USD
のURLはだからここに私の質問があります返します:でヘッダーのドロップダウン(私のサイトのすべてのページで呼び出される)は、オプションを選択すると、現在選択しているオプションをURLに追加してリフレッシュするようにします。
優秀なわずかなミスがここにありますけれども、これは動作します:window.location.href = window.location.href + "?currency =" + $( '#switchcurrency')。val();次のようにする必要があります:window.location.href = window.location.href + "?currency =" + $( '#currency')。 – suo
私が逃した可能性のあるもう一つの小さなこと、私がこのようなページにいるとどうなるでしょう:mysiteurl.php /?someparameter。ドロップダウンから選択すると、mysiteurl.php /?someparameter?currency = USDではなくmysiteurl.php /?someparameter&currency = USDになります。このビットの任意のヒント? – suo
は、コード内の選択のIDを修正しました。その他の問題については、 'window.location'オブジェクトのプロパティ(上にリンクされています)を使用してURLにGETパラメータがあるかどうかを判断できます。その決定を行い、あなたの通貨パラメータを(?または&で)追加してください –