【问题标题】:2 form submit in the same data2 表单提交在相同的数据
【发布时间】:2016-03-07 15:01:25
【问题描述】:

我想创建 2 个表单提交,第一个按钮用于保存数据,第二个按钮用于备份。 如果我点击“保存数据”按钮,它可以工作,但如果我点击“将数据另存为备份”,它就不起作用了。

如何使用我的代码保存数据作为备份?

<?=form_open('action/saveData')?>
<?=form_open('action/saveDataasBackup')?>
<label>Your Name</label>
<input type="text" name="name" placeholder="Your Name">
<input type="submit" value="Save Data">
<?=form_close();?>
<input type="submit" value="Save Data as Backup">
<?=form_close();?>

还是谢谢

【问题讨论】:

    标签: php forms codeigniter


    【解决方案1】:

    表单不能嵌套HTML5 working draft

    我建议您在这种情况下使用单一表单。当您在后端收到表单时,您可以查看天气以保存数据或备份数据。您可以通过添加name 属性来实现此类功能。你的表格是这样的:

    <?=form_open('action/saveData')?>
    <label>Your Name</label>
    <input type="text" name="name" placeholder="Your Name">
    <input type="submit" name="save" value="Save Data">
    <input type="submit" name="backup" value="Save Data as Backup">
    <?=form_close();?>
    

    在控制器方法中你可以这样检查:

    if(isset($_POST['save'])){
        //perform save operation
    }
    if(isset($_POST['backup'])){
        //perform backup operation
    }
    

    【讨论】:

      【解决方案2】:

      表单不能嵌套。您可以使用 ajax 或任何其他方法来实现此目的。

      【讨论】:

        【解决方案3】:

        以下行仅在末尾使用一次。

        <?=form_close();?>
        

        【讨论】:

        • NO Raja,它不会起作用。由于不允许嵌套&lt;form&gt;&lt;/form&gt;
        【解决方案4】:

        您不能在表单中使用表单,也不能将两个表单分开或在单个表单中使用 javascript 并更改操作然后提交。

        【讨论】:

          【解决方案5】:

          你可以像下面这样使用,为什么你使用两个表格,如果你想在两个表中添加数据,你可以使用下面的例子

          查看文件

          <?=form_open('action/saveData')?>
          <label>Your Name</label>
          <input type="text" name="name" placeholder="Your Name">
          <input type="submit" value="Save Data">
          <?=form_close();?>
          

          模型文件

          Class Test extends CI_Model
          {
              function insert_tbl1($data)
              {
                  $this->db->insert('tbl_tbl1', $data);
                  return $this->db->insert_id();
              }
              function insert_tbl2($data)
              {
                  $this->db->insert('tbl_tbl2', $data);
                  return $this->db->insert_id();
              }
          }
          

          控制器文件

          <?php
          defined('BASEPATH') OR exit('No direct script access allowed');
          class Action extends CI_Controller {
              public function __construct()
              {
                  parent::__construct();
                  $this->load->model('Test');
              }
          
              public function saveData()
              {
                 if($_POST['save'] == "Save Data"){
                  $data = array('test1' => $_POST['name']);
                  $insert_tbl1 = $this->test->insert_tbl1($data);
                  $insert_tbl2 = $this->test->insert_tbl2($data);
                 }
          
              }
          
          }
          

          【讨论】:

            【解决方案6】:

            一次只能提交一份表格。根据 html5 规则,您不允许使用表单与表单。而不是使用两个表单只创建一个表单并在其中放置两个提交按钮。一个作为保存数据提交,另一个作为备份保存。这样两个按钮都可以正常工作。

            【讨论】:

              【解决方案7】:

              虽然您可以在一个 HTML 页面中包含多个元素,但您不能嵌套它们。

              <?=form_open('action/saveData')?>
               <label>Your Name</label>
               <input type="text" name="name" placeholder="Your Name">
               <input type="submit" name="save" value="Save Data">
               <input type="submit" name="backup" value="Save Data as Backup">
              <?=form_close();?>
              

              保存数据(控制器)

              In this controller, Save Data and Create One Backup Also.
              

              【讨论】:

                猜你喜欢
                • 1970-01-01
                • 1970-01-01
                • 2014-11-25
                • 1970-01-01
                • 2021-06-11
                • 2021-08-15
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                相关资源
                最近更新 更多