使用PHP </button>获取<button>的值

时间:2013-10-10 19:29:27

标签: php codeigniter

我正在使用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 个答案:

答案 0 :(得分: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>
...

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

答案 1 :(得分: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,并将指令发送回正在运行的网页。这不是你想要做的吗?

答案 2 :(得分:0)

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

if( $this->input->post('first') ) { // First button was pressed; }

答案 3 :(得分: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');
}