在这里难倒编程新手。
几个月前我开始学习 PHP(用一点 HTML)。
一直在尝试创建一个从 Mysql 填充的下拉选择表单。正如您将在下面的代码中看到的那样,我想我已经做到了(如果您注意到代码中的任何“错误”,请告诉我)。
我的问题是显示/回显选定的选项/值。无论我从下拉列表中选择并提交什么,都只会显示第一项(在本例中:阿拉巴马州——stateid 为 1)。
我尝试了各种我在网上看到的东西,但似乎没有任何效果。
有很多调用 javascript 的建议,但就像我说的,我对编程完全陌生,所以 - 一次只使用一种语言。在跳到其他语言之前,我想很好地掌握 php。
当然这可以用 php 解决,对吗?
顺便说一句,最终目标是创建多个(大约 3 或 4 个)渐进式下拉表单(州、县、市)。所以,如果你愿意放纵我,我也想学习如何将选定的值(例如状态)传递给下一个查询/下拉列表。
我现在可以接受一堆带有提交按钮的下拉菜单。我最终会学习javascript。
但是试图弄清楚如何显示选定的状态让我发疯了。
非常感谢您的帮助/信息。
“状态”表
CREATE TABLE States (
stateid int NOT NULL AUTO_INCREMENT PRIMARY KEY,
state_name varchar(25) NOT NULL
)
ENGINE=INNODB,
DEFAULT CHARACTER SET utf8;
从 DATABSE 填充的选择/选项——“pick_state.php”:
$con = mysql_connect("localhost", "testx", "testx") or die('Could not connect to server');
mysql_select_db("US", $con) or die('Could not connect to database');
$stateid = $_GET['stateid'];
$state_name = $GET['state_name'];
$query = "SELECT stateid,state_name FROM States";
$result = mysql_query($query) or die(mysql_error());
$row = mysql_fetch_array($result, MYSQL_ASSOC) or die(mysql_error());
$stateid = $row['stateid'];
$state_name = $row['state_name'];
echo "Chosen state is: $state_name";
处理文件——“show_state.php”:
<?php
$con = mysql_connect("localhost", "test", "test") or die('Could not connect to server');
mysql_select_db("US", $con) or die('Could not connect to database');
echo "<form action=\"show_state.php\" method=\"get\">\n";
echo "<select name=\"state_name\">\n";
$query="SELECT stateid,state_name FROM States";
// ALSO : $query = "SELECT * FROM States "; --Does not work either//
$result=mysql_query($query);
while($row=mysql_fetch_array($result,MYSQL_ASSOC))
{
$stateid = $row['stateid'];
$state_name= $row['state_name'];
echo "<option value=\"$stateid\">$state_name</option>";
}
echo "</select>\n";
echo "<input name=\"submit\" type=\"submit\" id=\"stateid\" value=\"submit\" />\n";
echo "</form> \n";
?>
无论我选择并提交什么,以下页面始终只显示桌子上的第一项:阿拉巴马州
页面显示:“选择的州是:阿拉巴马州”
URL 当我选择并提交阿肯色州时:
/show_state.php?state_name=4&submit=submit
这是否意味着它正在检索正确的、选择/提交的 stateid(在这种情况下:4 --Arkansas' 声明)但只是不“呼应”州名?
在 show_state.php 上尝试了以下操作
$query = "SELECT stateid,state_name FROM States WHERE state_name = $state_name";
页面显示:空白
$query = "SELECT stateid,state_name FROM States WHERE stateid= $stateid";
页面显示:“您的 SQL 语法有错误;请查看与您的 MySQL 服务器版本相对应的手册,以获取正确的语法,以便在第 1 行的 '' 附近使用”
if(isset($makeid))
页面显示:"Query was empty"
if(isset ($_GET['makeid']))
页面显示:"Your Car is a "