-1

だから私はこのスクリプトを持っています

search.value = document.getElementById('OptionA').value + " " + document.getElementById('OptionB').value;

これは、ワードプレスで検索を行うのに役立ち、検索 URL を mysite.com/?s=OptionA+OptionB のようなものに変更しますが、次のようなものが必要です:

mysite.com/?s=OptionA+OptionB&post_type=product.

スクリプトを次のように変更しようとしました。

search.value = document.getElementById('OptionA').value + " " + document.getElementById('OptionB').value + "&post_type=product";

しかし、URLは次のようになります。

mysite.com/?s=OptionA+OptionB%26post_type%3Dproduct. どうすればいいですか?

これは product-searchform.php コードです:

<script type="text/javascript" charset="utf-8">
    function choose (el) {
        search = document.getElementById('search_done');
        search.value = document.getElementById('OptionA').value + " " + document.getElementById('OptionB').value + "&post_type=product";
    }
</script>

<form role="search" method="get" id="searchform" action="<?php bloginfo('siteurl'); ?>">

<p>Food</p>
<select name='' id='OptionA' onchange="choose(this);">
  <option value=''selected='selected'>----</option>
  <option value="Sandwich">Sandwich</option>
  <option value="Hamburger">Hamburger</option>
</select> 



<p>Beverage</p>
<select name='' id='OptionB' onchange="choose(this);">
  <option value=''selected='selected'>----</option>
  <option value="Soda">Soda</option>
  <option value="Juice">Juice</option>
</select> 
   <input type="hidden" id="search_done" value="" name="s" />
   <input type="submit" id="searchsubmit" value="">

</form>
4

1 に答える 1

0

参照している行の後にスクリプトが検索値をエンコードしているように見えるため、余分な部分も URL エンコードされます。something = encodeURIComponent( search.value )またはのような行を探しsomething = encodeURI( search.value )ます。something変数がエンコードされた後、追加の URL データを変数に追加する必要があります。

于 2013-03-07T10:26:24.860 に答える