0

我想从<select>标签中检索一个值到PHP...这个选定标签中的选项是一个函数,它从一个名为的单独文件PHP中列出这些选项phpfunctions.php

请参阅下面的功能functions.php

function list_brand (){
  $sql = "SELECT brand FROM laptop
         ";
  $query = mysql_query($sql) or die (mysql_error());

  if ($query) {
     //echo 'success'; <-- testing the function functinality

     while ($query_row = mysql_fetch_assoc($query)) {
           $brand = $query_row['brand'];

           echo '<option value="brand">'.$brand.'</option>';
     }      
  } else {echo 'fiald if';}
}

以下是选定的标签:

<select id="test" onchange="document.getElementById('text_content').value=this.options[this.selectedIndex].text">
    <option value="select">SELECT BRAND</option>
    <?php list_brand(); ?>
</select>
<input type="hidden" name="brand_text" id="text_content" value="" />

现在我的问题是我还有另外两个选定的标签,它们应该根据第一个选定标签中的选定选项列出选项,并且它应该列出完整的 SQL 查询

以下是我的完整 html 代码:

<form action="comparison.php" method="GET">
<table width="80%" border="0" align="center" cellpadding="1" cellspacing="2">
  <tr>
    <td colspan="2">Lap 1</td>
    <td colspan="2">Lap 2</td>
  </tr>
  <tr>
    <td width="19%">Brand</td>
    <td width="31%"><select><option value="brand1">==SELECT BRAND==</option>
                    <?php
                      list_brand();
                    ?>
                    </select></td>
    <td width="19%">Brand</td>
    <td width="31%"><select name="brand2"><option value="brand2">==SELECT BRAND==</option>
                    <?php
                      list_brand();
                    ?>
                    </select></td>
  </tr>
  <tr>
    <td width="19">Model</td>
    <td width="31"><select><option value="model1">==SELECT MODEL==</option></select></td>

    <td width="19">Model</td>
    <td width="31"><select><option value="model2">==SELECT MODEL==</option></select></td>
  </tr>
  <tr>
    <td width="19">Partnumber</td>
    <td width="31"><select><option value="pn1">==SELECT PARTNUMBER==</option></select></td>

    <td width="19">Partnumber</td>
    <td width="31"><select><option value="pn2">==SELECT PARTNUMBER==</option></select></td>
  </tr>
  <tr>
    <td height="453" colspan="2">&nbsp;</td>
    <td colspan="2">&nbsp;</td>
  </tr>
</table>
</form>
4

2 回答 2

1

就是这个。我必须在 OnChange 上放置两个函数,一个用于分配选定的值,另一个是提交页面以便它可以刷新......

 <form name="index" action="" method="GET">
  <select id="brand" onchange="document.getElementById('brand_content').value=this.options[this.selectedIndex].text; document.index.submit();">
          <option value="">==SELECT BRAND==</option>
                      <?php
                        list_brand();
                      ?>
  </select>
  <input type="hidden" name="brand_text" id="brand_content" value="" />

<?php
      $brand = $_GET['brand_text'];
      if (isset($brand)){

      }  else {echo 'no brand selected';}
?>
  <br>
  <select id="model" onchange="document.getElementById('model_content').value=this.options[this.selectedIndex].text; document.index.submit(); ">>
  <option value="model1">==SELECT MODEL==</option>
  <?php
       list_model($brand);
  ?>
  </select>
  <input type="hidden" name="model_text" id="model_content" value="" 
</form>
于 2013-05-25T23:04:29.273 回答
0

您需要使用 JavaScript 解决方案来处理此问题,因此您基本上希望使用 JavaScript 首先检查在第一个选择标记中选择了哪个选项,然后您希望使用 JavaScript 生成第二个和第三个的内容。我能想到的唯一方法是使用 ajax 请求,因为 PHP 是客户端并且解析一次,因此一旦解析就无法更改。

此外,这些mysql_*功能现在已被弃用,您应该考虑在您未来和当前的项目中使用PDO或。MySQLi您可以在此处进一步阅读

于 2013-05-19T21:10:32.217 回答