繁体   English   中英

PHP表单,重置按钮,修改按钮逻辑

[英]PHP form, reset button, modify button logic

我的PHP表单出现问题。

我有一个简单的表单,几乎可以做到:

if (isset($_POST['submit'])) {
} elseif (isset($_POST['confirm'])) {
} else {
}

它几乎是一个带有提交然后确认屏幕的表单(带有返回到先前屏幕的修改按钮)。 为了实现修改按钮,我使用了输入类型提交按钮。 在提交表单时,表单将返回到其自身。 由于它不是name =“ submit”或“ confirm”(修改按钮的名称为“ modify”),因此它将进入else并使用$ _POST数组通过执行操作来填充表单中的数据喜欢:

if (isset($_POST['event_name'])) {
        $event_name = $_POST['event_name'];
}
else {
        $event_name = "";
}

然后,不同的表单字段将使用$ event_name或其相应的var来填充默认值。

但是这样做,我破坏了表单的重置按钮(输入类型=“重置”),该按钮将清除表单中的所有字段,但在按下“修改”按钮后,它不会这样做。 有人知道我可以解决此问题的更好方法吗? 目前,我只是让我的重置按钮现在刷新页面,这并不理想。

我还有一个问题,当我使用“修改”按钮时,屏幕上出现几个损坏的字符。 我应该在哪里寻找它们出现的原因? 问题的图片: http://puu.sh/7ptan.png

在此处输入图片说明

您只需将$ _POST添加到数据库(MySQL)中即可(只需确保将其全部清理干净)。 如果用户想要编辑帖子,则只需添加一个编辑按钮,该按钮就会加载一个带有该帖子的值的文本区域(即存储在数据库中的一个文本区域)。

类似于以下内容... 示例代码

 define("DB_TYPE", "mysql");
 define("DB_HOST", "127.0.0.1");
 define("DB_NAME", "form_posts");
 define("DB_USER", "user");
 define("DB_PASS", "password");
 private $db_connection = null;
 private function createDatabaseConnection(){
        try {        
            $this->db_connection = new PDO(DB_TYPE.':host=' . DB_HOST . ';dbname=' . DB_NAME . ';charset=utf8', DB_USER, DB_PASS);
            return true;
        } catch (PDOException $e) {
            $this->feedback = "PDO database connection problem: " . $e->getMessage();
        } catch (Exception $e) {
            $this->feedback = "General problem: " . $e->getMessage();
        }
     return false;
}
private function accessDB($sql){
         $this->createDatabaseConnection();
         $query = $this->db_connection->prepare($sql);
        // bind the value you wish to access to the corresponding :value
         if(isset($_POST['value'])){
             $query->bindValue(':value',$_POST['value']);
         }
        $query->execute();
        $result_row = $query->fetchAll() ; 
     return $result_row;  
}
public function getPostVal(){
     $FormPost = htmlentities($_POST['ForumPost'], ENT_QUOTES);

     $result_row = $this->accessDB("SELECT count(ForumPost) FROM users WHERE ForumPost = {$ForumPost} LIMIT 1");
     return array_map(function($entry) { return $entry['account_ID']; }, $result_row);
}
public function setPostVal($val){
     $this->createDatabaseConnection();

     $sql = "INSERT INTO users (FormPost, post_id)
                VALUES(:FormPost, :post_id)'";
     $query = $this->db_connection->prepare($sql);
     $isSuccess = $query->execute();
     if($isSuccess){
          echo 'success!';
     } else { echo 'the action failed';}
}

<?=getPostVal(); ?> <?=getPostVal(); ?>里面一个文本什么的,然后有setPostVal($val)提交数据

在这里,您可以调整进行适当发布所需的值。 也许添加一个编辑按钮或您有什么。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM