从下拉列表中选择项目并从数据库

时间:2016-01-15 04:13:38

标签: php jquery html drop-down-menu

我正在做一些关于材料科学的项目。我坚持使用php编码。我的项目计划是从连接的数据库中制作一个下拉列表并且工作正常,当我从下拉列表中选择一个金属时,它会显示金属的结构类型。这部分根本不起作用,在编写代码时给出了一些http 500错误。我认为我的代码有问题。

select class="form-control" name="metalname" id="metalname">
        <?php
        $sql = mysql_query("SELECT name FROM metal");
        while($row=mysql_fetch_array($sql)){
            echo"<option value=\"name\">" . $row['name']."</option>";
        }
        ?>
        </select>
      </div>
      <div class="form-group">
        <div class="input-group">
          <div class="input-group-addon" id="basic-addon1">Type</div>
           <?php
           $valStructure = $_POST['metalname'];
           $structure = mysql_fetch_array("SELECT structure_type FROM metal WHERE name='$valStructure");
           while($row1=mysql_fetch_array($structure)){
               echo" <input type="text" class="form-control" id="pricefrom" aria-describedby="basic-addon1" value=\"structure_type\">".$row1['structure_type'];
           }
           ?>

所以下拉列表部分工作正常。但是当我尝试从select类中获取金属名称时,它会给我一些错误。 请帮帮我!!

2 个答案:

答案 0 :(得分:0)

如果你看这一行:

echo" <input type="text" class="form-control" id="pricefrom" aria-describedby="basic-addon1" value=\"structure_type\">".$row1['structure_type'];

type=之后的引号会破坏回显并导致语法错误。将其更改为以下之一:

1 - 以反斜杠

进行跳转
echo" <input type=\"text\" class=\"form-control\" id=\"pricefrom\" aria-describedby=\"basic-addon1\" value=\"structure_type\">".$row1['structure_type'];

2 - 使用单引号

echo" <input type='text' class='form-control' id='pricefrom' aria-describedby='basic-addon1' value=\"structure_type\">".$row1['structure_type'];

答案 1 :(得分:0)

我喜欢在顶部的一个部分中一起构建我的PHP对象,然后在我构建下面的HTML框架时将它们注入到DOM中:

<?php
    $selMN = '<select class="form-control" name="metalname" id="metalname">';
    $sql = mysql_query("SELECT name FROM metal");
    while($row=mysql_fetch_array($sql)){
        $selMN .= '<option value="name">' .$row['name']. '</option>';
    }
    $selMN .= '</select>';

    $pf = '';
    $valStructure = $_POST['metalname'];
    $structure = mysql_fetch_array("SELECT structure_type FROM metal WHERE name='$valStructure' ");
    while( $row1 = mysql_fetch_array($structure) ){
        $pf .= '<input type="text" class="form-control" id="pricefrom" aria-describedby="basic-addon1" value="structure_type">' .$row1['structure_type'];
    }

?>

<div class="missing_from_your_code">
    <?php echo $selMN; ?>
</div>

<div class="form-group">
    <div class="input-group">
        <div class="input-group-addon" id="basic-addon1">Type</div>
            <?php echo $pf; ?>
        </div>
    </div>
</div>

如果您需要根据与用户的交互从数据库获取其他信息,请查看此链接答案底部的这些有用的SIMPLE示例。 (不要只是阅读它们,将它们复制到您的系统中并 尝试 ):

PHP - Secure member-only pages with a login system

注意:

除了马特在答案中正确指出的内容之外,你还错过了这一行末尾的结束单引号:

$structure = <<snip>> WHERE name='$valStructure");

(应该是):

$structure = <<snip>> WHERE name='$valStructure' ");