我在php项目中有一些看法。我通过HTML提交按钮调用方法,但该方法没有运行,我不明白为什么。该方法包含查询将2个文本上载到SQL数据库的内容。
这是我的方法:
public function uploadCtrl() {
if(isset($_POST['send_note'])){
$title =$_POST['title_of_note'];
$text =$_POST['text_of_note'];
$id = $_SESSION['user_logged_status'];
var_dump($title, $text, $id);
$database->noteToDatabase($title, $text, $id);
}
这是视图:
public function uploadNote(){
?>
<form action='' method='post'><br>
Title:<input type='text' name='title_of_note'><br>
Text:<input id='long_text' type='text' name='text_of_note'><br>
<input type='submit' name='send' value='SEND'><br>
<a href='?send_note'>Note save</a>
</form>
<?}
和查询方法:
public function noteToDatabase($title, $text, $id){
$stmt = $this->conn->query("INSERT INTO note (title, text,user_id) VALUES ('$title','$text','$id')");
var_dump($stmt);
}
我在这里调用方法:
if(isset($_POST['new_note'])){
$ctrl = new note_ctrl();
$ctrl->uploadNoteToDatabase();
// $ctrl->uploadCtrl();
}
我使用Mozilla Firebug检查了post方法,它看起来没问题,但这个方法永远不会运行。
答案 0 :(得分:0)
使用$_POST['send']
代替$_POST['send_note']
public function uploadCtrl(){
if(isset($_POST['send'])){
答案 1 :(得分:0)
如果你的方法属于一个班级。您可以尝试在视图中调用uploadCtrl()
方法。
public function uploadNote(){
if(isset($_POST['send'])){$this->uploadCtrl()}
?>
<form action='' method='post'><br>
Title:<input type='text' name='title_of_note'><br>
Text:<input id='long_text' type='text' name='text_of_note'><br>
<input type='submit' name='send' value='SEND'><br>
<a href='?send_note'>Note save</a>
</form>
<?
}
如果视图位于其他课程中,则需要将方法public function uploadCtrl(){
设为静态,如public static function uploadCtrl(){
,这样您就可以在note_ctrl::uploadCtrl()
答案 2 :(得分:-1)
尝试在action
标记
form
参数中提及方法名称
form action="note_ctrl/uploadCtrl" method="post"
由于
您使用的是任何框架吗?