Codeigniter不会从多表单页面

时间:2016-07-05 02:05:49

标签: javascript php forms codeigniter

我在视图中有一个多表格页面:

 <?php echo form_open("account"); ?>
 // input fields
 <input type="submit" name="change-password" value="Change Password"/>
 </form> 

<?php echo form_open("account"); ?>
 // input fields
 <input type="submit" name="change-email" value="Change Email"/>
 </form>

在控制器中我正在检查:

if (!empty($_POST['change-password']))
    {
       // 
    }

    if (!empty($_POST['change-email']))
    {
        //
    }

$_POST['change-password']始终为null

所以我试图切换它们的位置,甚至添加了第三种形式。无论我做什么,我都无法从FIRST提交表单中提交name,但可以从第二和第三提交。

更新 我找到了这个bug。

我没有提到这个,但我在表单上的提交按钮有一个id =“submit-btn” 和防止双重提交的JavaScript会造成麻烦:

$("form").one('submit', function() {
    $('#submit-btn').prop("disabled", true);
}); 

我不明白为什么,但这是另一个问题。

1 个答案:

答案 0 :(得分:0)

为两个表单添加唯一的隐藏字段,并检查控制器中方法(此处发布)中的字段名称。

 <?php echo form_open("account"); ?>
 // input fields
 <input type="hidden" name="first_form" value="first_form"/>
 <input type="submit" name="change-password" value="Change Password"/>
 </form> 

 <?php echo form_open("account"); ?>
// input fields
<input type="hidden" name="second_form" value="second_form"/>
<input type="submit" name="change-email" value="Change Email"/>
</form>


if ($_POST['first_form'])
{
   // inside first form
}

if ($_POST['second_form'])
{
    // inside second form
}