我有一个数据库表,上面有学校的名字和地点。看上去像这样
id name location
1 Federal University of tech California
2. Massachusetts Inst of tech Boston我正在使用这个表填充一个select标记,其中包含这些学校的名称。而且效果很好。每个用户在创建他/她的配置文件时都应该选择自己的学校。然而,当提交表单时,只插入学校名称中的第一个单词。例如,在联邦科技大学,只有联邦大学被插入到数据库中,而马萨诸塞州只有麻省理工学院被插入--等等--而不是全校的全名。如何将选定学校的全名插入?代码(page.php):
<?php
//Getting names of schools to populate select tag
$stmt = $db->query("SELECT name from schools order by name ASC");
if($_SERVER['REQUEST_METHOD'] == "POST"){
$major = $_POST['major'];
$university = $_POST['university'];
$email = $_POST['email'];
$stmts = $db->prepare("INSERT INTO profile (university, major email)") VALUES (:university, :major, :email);
$stmts->execute(array(':university' => $university, ':major' => $major, ':email' => $email));
}
?>
//THE HTML FORM
<form action = "page.php" method = "post">
<label>University:
<?php
echo '<select title = "Select one" name= "university"></select>';
echo '<option value="">--please select--</option>';
while ($rows = $stmt->fetch[PDO::FETCH_ASSOC])
echo '<option value = '.$rows['name'].'>'.$rows['name'].'</option>';
echo '</select>';
?>
//other form elements
</label>
</form>发布于 2014-05-26 19:27:03
我认为问题在于为选项标记编写值属性的方式。建议在双引号中放置带空格的值。
比如:
echo '<option value = "Massachusetts Inst of tech">Massachusetts Inst of tech</option>';但是,之所以获得通过,是因为双引号被忽略了:
echo '<option value = "Massachusetts">Massachusetts Inst of tech</option>';您可能需要查看这一行:
echo '<option value = '.$rows['name'].'>'.$rows['name'].'</option>';并纠正这一条:
echo '<option value = "'.$rows['name'].'">'.$rows['name'].'</option>';https://stackoverflow.com/questions/23876302
复制相似问题