我有一个HTML表单,其中包含选择下拉列表。我想从我的MySQL数据库中填充下拉列表。 HTML表单已经有一些java脚本来处理datepicker,以及表单中某个字段的当前日期。
我可以手动编写表单以供选择,但希望它来自MySQL。我使用的PHP我把它自己的文件name.php放入其中以确保它正常工作。我在php中添加了一些echo语句来构建表单和选择,然后填充选择并关闭它。这作为一个独立的PHP工作得很好。
当我在选择定义下的表单中附加php时,它根本不会填充选择,它会留空/空。如果我以选择选项的格式向输出信息添加一些回显声明,则第一个回声从不显示,随后的回声显示,但任何变量都显示为变量名。
<form id="form1" name="form1" method="post" action="/db_log.php">
Field:<select name="id">
<?php
require_once dirname(__FILE__) . '/db_connect.php';
$db = new DB_CONNECT();
$query="SELECT id, name FROM file order by name";
$result=mysql_query($query);
while ($row = mysql_fetch_array($result)) {
$id = $row['id'];
$name =$row['name'];
echo "<option value=\"$id\"> $name </option>";
}
?>
</select><br />
</form>
以上是一个空的选择下拉列表。 但是这可以作为PHP文件使用。
<?php
echo "<form id=\"form1\" name=\"form1\" method=\"post\" action=\"/db_log.php\">";
echo "Select:<select name=\"id\">";
require_once dirname(__FILE__) . '/db_connect.php';
$db = new DB_CONNECT();
$result=mysql_query("SELECT id, name FROM file order by name");
while ($row = mysql_fetch_array($result)) {
$id = $row['id'];
$name =$row['name'];
echo "<option value=\"$id\"> $name </option>";
}
echo "</select><br />";
echo "</form>";
?>
如果我在HTML表单中添加一个回声,就像在任何其他回声之前的测试回声一样,它将被忽略。
<form id="form1" name="form1" method="post" action="/db_log.php">
Field:<select name="id">
<?php
echo "<option value=\"1\"> Test-name </option>";
require_once dirname(__FILE__) . '/db_connect.php';
$db = new DB_CONNECT();
$query="SELECT id, name FROM file order by name";
$result=mysql_query($query);
while ($row = mysql_fetch_array($result)) {
$id = $row['id'];
$name =$row['name'];
echo "<option value=\"$id\"> $name </option>";
}
?>
</select><br />
</form>
唯一显示的是选择$ name
的选项答案 0 :(得分:0)
A有一个从我的mysql数据库提供的组合框。
我是这样的:
<tr>
<td>Emergency service</td>
<td><?php
$nombreEmergencia;
$idEmergencia;
$sql4 = "SELECT `idEmergencias`, `nombre` FROM `emergencias` WHERE 1";
$iterador = $conn->consulta($sql4);
echo '<select name="idEmergencia" id="idEmergencia" style="width:228px">
<option value="-1" selected>(please select:)</option>';
while($iterador->hayElemento()){
$nombreEmergencia = $iterador->getElemento("nombre");
$idEmergencia = $iterador->getElemento("idEmergencias");
echo '<option value="'.$idEmergencia.'">'.utf8_encode($nombreEmergencia).'</option>';
}
echo '</select>'; ?></td>
</tr>
正如您所看到的,您必须使用“iterator”变量和一个函数来检查数据库中是否有更多元素并带来了它们。
该辅助功能如下所示:
<?php
class Iterador{
private $ultimoDato;
private $id;
public function __construct($id){
$this->id = $id;
}
public function hayElemento(){
$dato = mysql_fetch_array($this->id);
$this->ultimoDato = $dato;
return !empty($dato);
}
public function getElemento($columnas){
return $this->ultimoDato[$columnas];
}
public function inicializar(){
$dato = mysql_fetch_array($this->id);
$this->ultimoDato = $dato;
}
public function hay(){
return !empty($this->ultimoDato);
}
public function siguiente(){
$dato=mysql_fetch_array($this->id);
$this->ultimoDato=$dato;
}
}
?>
希望这会有所帮助!!
答案 1 :(得分:0)
基于这个问题以及之前的问题和你已经得到的评论,我猜你正在尝试从.html
文件运行php。您需要将代码(包括html)保存在.php
文件中才能使用。