web-dev-qa-db-ja.com

PHPコンボボックスの選択されたテキストを取得するコード

「Make」という名前のコンボボックスがあります。そのコンボボックスには、車両メーカー名をロードしています。検索ボタンをクリックすると、選択したメーカー名が表示されます。以下は私のHTMLコードの一部です。

<label for="Manufacturer"> Manufacturer : </label>
<select id="cmbMake" name="Make" >
   <option value="0">Select Manufacturer</option>
   <option value="1">--Any--</option>
   <option value="2">Toyota</option>
   <option value="3">Nissan</option>
</select>

<input type="submit" name="search" value="Search"/>

以下は、これまでに行った私のPHPコードです。

 <?php

if(isset($_POST['search']))
{
    $maker = mysql_real_escape_string($_POST['Make']);
    echo $maker;
    }
 ?>

コンボボックスからToyotaを選択してSEARCHボタンを押すと、「2」という答えが返されます。それは「トヨタ」の価値を私に与えることを意味します。でも「トヨタ」という名前を表示したい。どうやってやるの?私を助けてください ....

3
Emmanuel Yasith

これでお試しください。 $ _POST ['Make']で選択ボックスの値を取得し、$ _ POST ['selected_text']で名前を取得します

<form method="POST" >
<label for="Manufacturer"> Manufacturer : </label>
  <select id="cmbMake" name="Make"     onchange="document.getElementById('selected_text').value=this.options[this.selectedIndex].text">
     <option value="0">Select Manufacturer</option>
     <option value="1">--Any--</option>
     <option value="2">Toyota</option>
     <option value="3">Nissan</option>
</select>
<input type="hidden" name="selected_text" id="selected_text" value="" />
<input type="submit" name="search" value="Search"/>
</form>


 <?php

if(isset($_POST['search']))
{

    $makerValue = $_POST['Make']; // make value

    $maker = mysql_real_escape_string($_POST['selected_text']); // get the selected text
    echo $maker;
}
 ?>
7
Ajeesh

送信するものをPHP= value属性に入れます。

  <select id="cmbMake" name="Make" >
     <option value="">Select Manufacturer</option>
     <option value="--Any--">--Any--</option>
     <option value="Toyota">Toyota</option>
     <option value="Nissan">Nissan</option>
  </select>

value属性を省略することもできます。デフォルトではテキストが使用されます。

HTMLを変更したくない場合は、PHPに配列を配置して値を変換できます。

$makes = array(2 => 'Toyota',
               3 => 'Nissan');

$maker = $makes[$_POST['Make']];
5
Barmar

これは、新しい配列を作成することで実現できます。

<?php
$array = array(1 => "Toyota", 2 => "Nissan", 3 => "BMW");

if (isset ($_POST['search'])) {
  $maker = mysql_real_escape_string($_POST['Make']);
  echo $array[$maker];
}
?>
1
Bora

jQuery onChangeイベントを作成して、ユーザーがコンボボックスからテキストを取得することができます。

<script>    
     $( "select" )
     .change(function () {
     var str = "";
     $( "select option:selected" ).each(function() {
     str += $( this ).text() + " ";
     });
     $('#EvaluationName').val(str);
     })
     .change();
 </script>

オプションを選択すると、テキストが入力非表示に保存されます

  <input type="hidden" id="EvaluationName" name="EvaluationName" value="<?= $Evaluation ?>" />

その後、フォームを送信するときに、入力の値をキャッチします

$Evaluation = $_REQUEST['EvaluationName'];

次に、テキストを使用して、たとえばセッション変数に保存して他のページに送信することができます。等.

0
David Ortega

データベースからフェッチする場合

<select id="cmbMake" name="Make" >
<option value="">Select Manufacturer</option>
<?php $s2="select * from <tablename>"; 
$q2=mysql_query($s2); 
while($rw2=mysql_fetch_array($q2)) { 
?>
<option value="<?php echo $rw2['id']; ?>"><?php echo $rw2['carname']; ?></option><?php } ?>
</select>
0
chirag ode

私はAjeeshに同意しますが、これを行う簡単な方法があります...

if ($maker == "2") { }

または

if ($maker == 2) { }

  • 「トヨタ」の値を返さないのはなぜですか?選択ボックスで「トヨタ」を選択すると、すでに「2」が返されているため、選択ボックスで選択されたメーカーがトヨタであることを示します。

  • ユーザーは、値がセレクションボックスでのトヨタのセレクションと等しいかどうかをどのようにして知るのでしょうか。私のコード例の括弧の間に、_$maker = "Toyota"_を挿入してから_echo $maker_を挿入するか、次のように新しい文字列を作成します:_$maketwo = "Toyota"_次に_echo $makertwo_を作成できます( _$maker_の元の値を上書きするのではなく、新しい文字列。)

  • ユーザーが「Nissan」を選択した場合、サンプルコードも同様に処理します。はいといいえ。 「トヨタ」は値「2」を返しますが、「日産」は値「3」を返します。サンプルコードが探している現在の設定値は「2」です。つまり、ユーザーが値「3」を表す「Nissan」を選択して「検索」を押すと、サンプルコードは実行されません。コードを簡単に変更して、値「3」、または「--Any--」を表す値「1」を確認できます。

  • 選択ボックスが「メーカーを選択」に設定されているときにユーザーが「検索」をクリックするとどうなりますか?どうすれば防止できますか?それ以上先に進まないようにするには、サンプルコードの設定値を「0」に変更し、角括弧の間にコードを配置してから、_return;_を追加して、すべての実行を終了しますfunction /ステートメント内のさらなるコード。

0
Momoro

選択ボックスオプションの値を変更します。

<select id="cmbMake" name="Make" >
     <option value="">Select Manufacturer</option>
     <option value="Any">--Any--</option>
     <option value="Toyota">Toyota</option>
     <option value="Nissan">Nissan</option>
  </select>

PHPで選択したオプションのテキストを取得できません。選択したオプションの値のみが表示されます。

編集:

<select id="cmbMake" name="Make" >
     <option value="0">Select Manufacturer</option>
     <option value="1_Any">--Any--</option>
     <option value="2_Toyota">Toyota</option>
     <option value="3_Nissan">Nissan</option>
  </select>

PHPファイル:

$maker = mysql_real_escape_string($_POST['Make']);
$maker = explode("_",$maker);
echo $maker[1]; //give the Toyota
echo $maker[0]; //give the key 2
0
Code Lღver