0

このコードを変更したい...

<form action="search.php" method="get" name="form1" id="form1">
<select name="name">
  <option value="category">CATEGORY</option>
  <option value="product">PRODUCT</option>
</select>
<input name="value" type="text" id="catprod" size="20" />

最後に、タイプのリンクを受け取りたい...

http://www.mysite.com/search.php?product=car

また

http://www.mysite.com/search.php?category=auto

ドロップリストのどのアイテムが顧客を選択するかによって異なります。「車」と「自動車」は顧客からの検索リクエストで、顧客が入力します。

4

3 に答える 3

2

さて、これを行うには2つの方法があります。

1つ目は、選択解除が変更されたときに、テキストフィールドの入力名を正しい名前(カテゴリまたは製品)に変更することです。だからあなたは

onChange="document.getElementById('catprod').name = this.value;"

ロード時に、入力にすでに正しい名前を付けていることに注意してください。通常の状態では、「カテゴリ」になります(最初のカテゴリとして選択されているため)。

もう1つのオプションは、1つを非表示にして2つの入力フィールドを作成することです。そして、ユーザーが選択したフィールドを表示します。(これもonchangeを使用しますが、非表示と表示を使用します)。

とにかく、これは両方とも問題を解決するための最良の方法ではありません。最良の問題は、PHPスクリプトでそれを解決することです。

于 2012-09-04T15:48:27.907 に答える
1

私は以下を使用します:

<html>
    <head>
        <script>
            function redirect() {
                window.location.href = 'http://www.mysite.com/search.php?'+document.form1.key.value+'='+document.form1.val.value;
            }
        </script>
    </head>
    <form name="form1" onsubmit="redirect(); return false;">
        <select name="key">
           <option value="category">CATEGORY</option>
           <option value="product">PRODUCT</option>
        </select>
        <input name="val" type="text" id="catprod" />
    </form>
</html>

javascriptとhtmlは主にこのように分離されています。

于 2012-09-04T15:51:17.427 に答える
0
<form action="search.php" method="get" name="form1" id="form1">
<select style="border:1px solid rgb(102,153,204);background-color:FFFFCC;height:20px;width:120px;" onfocus="this.style.background='white'" onblur="this.style.background='FFFFCC'" name="name" id="myselect">
                              <option value="category">CATEGORY</option>
                              <option value="product">PRODUCT</option>
                            </select>
<input name="value" type="text" id="catprod" style="border:1px solid rgb(102,153,204);background-color:FFFFCC;height:15px;width:200px;" onfocus="this.style.background='white'" onblur="this.style.background='FFFFCC'" size="20" />

<script>
  var submitform = function() {
   form1.submit();  
  }
  document.getElementById('myselect').onchange = submitform;
</script>

インライン CSS を使用しないことを強くお勧めします。これは、ID (およびクラス) により意味のある名前を付けているためです。また、インライン JS の使用は避けてください。

スクリプト タグのコードが行うことは、select 要素の値を変更したときにフォームを送信することです。フォームはメソッド「get」を使用しているため、フォームを送信すると、これらのタイプの URL が表示されます。

于 2012-09-04T16:21:24.953 に答える