使用 MVC 框架,我编写了一些旨在向数据库添加信息的代码。
在 Index.php 中( View )
<form method="post" action="<?php echo URL;?>note/updatetopic">
<select>
<option value="1">Coasts</option>
<option value="2">Energy Demand</option>
</select>
<input type="submit" name="topic_selection" value="Choose" />
</form>
上面的代码旨在发布有关用户想要修改的内容的信息。
在 note.php( Controller )中
public function updatetopic() {
if (isset($_POST['topic_selection'])) {
$note_model = $this->loadModel('Note');
$note_model->updatetopic($_POST['topic_selection']);
}
header('location: ' . URL . 'note');
}
上面的代码旨在从index.php中的代码中获取信息并将其转发到运行函数的note_model上。
在 note_model.php(模型)中
public function updatetopic($topic_selection)
{
$topic_selection = strip_tags($topic_selection);
$sql = "INSERT INTO users (topic_revising) VALUES (:topicselected) WHERE user_id=:user_id";
$query = $this->db->prepare($sql);
$query->execute(array(':topicselected' => $topic_selection, ':user_id' => $_SESSION['user_id']));
$count = $query->rowCount();
if ($count == 1) {
return true;
} else {
$_SESSION["feedback_negative"][] = TOPIC_UPDATE_FAILED;
}
// default return
return false;
}
这旨在验证提交的信息并将其插入数据库,但它输出:
$_SESSION["feedback_negative"][] = TOPIC_UPDATE_FAILED;
有人可以帮助我并告诉我我做错了什么吗?谢谢。
最佳答案
您没有为选择的标签选择任何名称:
尝试这样:
<select name="topic">
<option value="1">Coasts</option>
<option value="2">Energy Demand</option>
</select>
现在获取您的下拉列表的值:
if (isset($_POST['topic'])) {
$note_model = $this->loadModel('Note');
$note_model->updatetopic($_POST['topic']);
// $_POST['topic'] == 1 or 2 depends upon selection
}
你可以像这样改变它:
<select name="topic">
<option value="coasts">Coasts</option>
<option value="Energy_Demand">Energy Demand</option>
</select>
现在您将获得所选列表项的实际值并可以进一步移动......
关于php - 无法提交到数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23011251/