我正在使用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
它显示了按钮的值,我想得到它并将其传递给我的控制器
答案 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');
}