【问题标题】:two different submit button on a form codeigniter acting weird表单codeigniter上的两个不同的提交按钮表现得很奇怪
【发布时间】:2014-05-24 13:57:22
【问题描述】:

我在一个提交表单上有两个按钮,但是当我发布提交按钮时,它什么也没返回;“关于按钮”;其他数据检索得很好。

我一直在为提交按钮使用不同的名称,但没有任何效果。有人可以帮助我吗?谢谢。 FORM 数据检索良好,但不是提交按钮值?我需要值来改变条件

控制器:admin.php

        function submit_unitgroupwd(){
        $this->access_chk(); //CHECK USER ACCESS

    $sbm=$this->input->post('sbm'); // returns NOTHING
   echo $_POST["sbm"]; // returns undefined index sbm
   echo $_POST['sbm']; // returns undefined index sbm
var_dump($_POST); // returns all the post data bt the submit button

 //echo var_dump($this->input->post("sbm"));
exit();

if($this->input->post('sbm') == "Update") { 
// do update
} else {
// do delete
}

}

查看:

 echo "<form action=".site_url("admin/submit_unitgroupwd")." method=post id=form>"; 
echo "<div style='float:left;color:red;' id='res'></div>";
?><?php 
foreach($q1->result_array() as $r1){
$bankname= substr($r1["bank"],0,3);
//echo $bankname;


echo "<input type=hidden name=dgroup value='".$dgroup."'>";
echo "<tr>";
echo "<td width=20% colspan=3 style='font-size: 16px;'>".strtoupper($r1["bank"])."</td>";
echo "</tr>";
echo "<tr>";
echo "<td width=100>".$group_[0]."</td>";
echo "<td><input type=text name='$bankname-utama' value='".str_replace(" ","",$r1["utama"])."' style='width: 100%;'></td>";

if ($r1["bank"] == 'ALL'){
    echo "<td rowspan='1'><br><input type='checkbox' name='cek[]' id='cek[]' value='$bankname' ></td>";

    echo "<input type=hidden name=_code$bankname value='".$r1["bank"]."'>";
    echo "</tr>";
    echo "</tr>";
    continue;
}

echo "<td rowspan=".($dgroup + 1)."><br><input type='checkbox' name='cek[]' id='cek[]' value='$bankname' ><br><br><br><br><br><br><br>";
echo "<input type=hidden name=_code$bankname value='".$r1["bank"]."'>";

echo "</tr>";

$_alp = "a";
for ($_g=0; $_g<$dgroup; $_g++){
    echo "<tr>";
    echo "<td width=100>".$group_[($_g + 1)]."</td>";
    echo "<td width=80%><input type=text name='$bankname-wd$_alp' value='".str_replace(" ","",$r1["wd$_alp"])."' style='width: 100%;'></td>";
    echo "</tr>";
    $_alp++;
echo "</tr>";

}
}
?>
>
<input type="submit" class="button" value='Update' name="sbm"/>
<input type="submit" class="button" value='Delete' name="sbm"/>

【问题讨论】:

    标签: javascript php jquery forms codeigniter


    【解决方案1】:

    我对您对问题的描述并不完全清楚,但您不能将两个提交按钮命名相同。

    您似乎认为按下一个或另一个按钮只会提交该按钮的值,但实际上第二个总是提交,因为它是表单上的最后一个。

    所以将你的按钮名称更改为“更新”和“删除”,然后你可以检查

    if(isset($_POST['update']))....
    

    例如。

    但是,您可能想在 Internet 上查找一些更简洁的示例,以了解如何编写您所追求的内容。

    【讨论】:

    • 对不起,我已经使用 CI 框架以另一种形式成功地做到了这一点。请看这个。 stackoverflow.com/questions/11391007/…
    • 我的立场是正确的——我认为这行不通,老实说我不确定我是否相信它。无论如何,您的表单正在提交给 admin/submit_unitgroupwd,但您的控制器是 admin/submit_withdraw_admin,所以让我们清理上面的帖子并在继续之前检查类似的内容
    • 我道歉了。我错误地从控制器中的另一个功能复制。? 回到我的办公桌后,我会尝试你的想法。谢谢杰夫。 :)
    • @xyonme,无论其他接受的答案如何,我永远不会在两个完全不同的 input 元素上使用相同的 name 属性。 jmadsen 的这个答案显然更可靠。
    • 嗨@Sparky 我已经尝试过 jmadsen 的想法,但它没有检索提交按钮的 POST 值。结果如上。我不知道为什么它不发布。我在下面使用 Dimitri 的解决方案。谢谢。 :)
    【解决方案2】:

    你可以只使用

     <input type="submit" class="button" value='Update' name="sbm"/> 
    

    并为删除操作使用锚点,

    echo "<a href ='controller_delete/$item_id' class='button'>Delete</a>
    

    因为如果您明白我的意思,您通常不需要在删除操作上进行其他输入。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-08-01
      • 1970-01-01
      • 1970-01-01
      • 2013-02-12
      • 1970-01-01
      相关资源
      最近更新 更多