0

我正在使用 Codeigniter,并且尽可能地不想使用 $_GET 方法。获取按钮标签值的其他方法是什么?

这是我的按钮代码:

<button id="first" name="first" type="submit" value="Php3000"></button>             

我只想获取按钮的值以便能够将其传递给我的控制器。

我是初学者,请赐教。谢谢你。

编辑

抱歉没有给你们说清楚,实际上我有三个按钮

 <button id="first" name="first" type="submit" value="Php3000"></button>                
 <button id="second" name="second" type="submit" value="Php2000"></button>              
 <button id="third" name="third" type="submit" value="Php2500"></button>    

用户必须在这三个按钮中进行选择,我应该得到所选按钮的值。

我想做的例子:http ://www.w3schools.com/tags/tryit.asp?filename=tryhtml_button_value2

那里显示了按钮的值,我想得到它并将它传递给我的控制器

4

4 回答 4

1

抱歉补充答案..

表单中的 HTML 按钮被视为输入字段,但实际上只会提交按下按钮的值。

所以你应该重写你的按钮如下或类似:

<button id="first" name="selected_button" value="Php3000">Choose php 3000 label</button>                
<button id="second" name="selected_button" value="Php2000">Choose php 2000 label</button>              
<button id="third" name="selected_button" value="Php2500">Choose php 2500 label</button> 

然后,所选按钮的值将作为 $_POST['selected_button'] 或在 CodeIgniter 中可用

$selected_button = $this->input->post('selected_button');

switch($selected_button){ ... }

如果你给你的按钮单独命名,你将不得不检查每一个,但是像这样你可以得到值,然后决定如何从那里继续。在这方面,按钮也比提交类型的输入对开发人员更友好。

如果不能保证在所有客户端机器上都可用,我不会依赖 javascript。虽然这是一种很好的方式。

编辑:如果您使用一些花哨的 CSS,您甚至不必依赖按钮/表单,而是可以直接使用链接。假设您使用的是漂亮的 twitter 引导程序,它可能如下所示:

<a href="<?php echo site_url('controller/method/Php3000'); ?>" class="btn btn-info">Choose php 3000 label</a>
...

如果您不需要同时提交任何其他数据,则此方法的开销最小。

于 2013-10-11T14:17:13.140 回答
0

您始终可以使用 javascript 找到按钮的值,然后通过 AJAX 调用将其传递给单独的 PHP 文件。

如果您使用的是 JQuery:

http://api.jquery.com/jQuery.post/

JQuery.post( "backend.php",
    $("first").val(),
    function(data) {
       //do something here on success.
    });

而在后端我们可以在backend.php文件中的CodeIgniter中进行处理,并将指令发送回正在运行的网页。这不是你试图做的吗?

于 2013-10-10T19:40:21.567 回答
0

我不使用 CodeIgniter,但根据http://ellislab.com/codeigniter/user-guide/libraries/input.html,您应该能够从控制器内的输入处理程序中获取值:

if( $this->input->post('first') ) { // First button was pressed; }
于 2013-10-11T12:06:17.907 回答
0

你应该使用表单助手:

<?php echo_form('c=controller&m=method'); ?>

然后代替按钮:

<button id="first" name="first" type="submit" value="Php3000"></button>                
<button id="second" name="second" type="submit" value="Php2000"></button>              
<button id="third" name="third" type="submit" value="Php2500"></button> 

尝试使用输入:

<input id="first" name="first" type="submit" value="Php3000">                
<input id="second" name="second" type="submit" value="Php2000">              
<input id="third" name="third" type="submit" value="Php2500">

然后关闭您的表单:

<?php echo form_close(); ?>

在您的控制器方法中尝试:

if(isset($this->input->post('first'))){
   $first = $this->input->post('first');
}

或者只是这个:

if($this->input->post('first')){
   $first = $this->input->post('first');
}
于 2013-10-11T12:32:30.503 回答