【问题标题】:Getting the value of <button> using PHP使用 PHP 获取 <button> 的值
【发布时间】:2013-10-10 19:29:26
【问题描述】:

我正在使用 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

它显示了按钮的值,我想获取它并将它传递给我的控制器

【问题讨论】:

  • 如果不是GET,那么POSTREQUEST。除此之外,你运气不好。
  • 为什么不是隐藏字段?为什么是按钮?
  • 嗯,用户必须选择所以隐藏字段不是一个选项
  • @user20232359723568423357842364 我已经尝试过了,但它不适合我:(
  • @TerraSova 单选按钮?复选框?

标签: php codeigniter


【解决方案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>
...

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

【讨论】:

    【解决方案2】:

    你应该使用表单助手:

    <?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');
    }
    

    【讨论】:

      【解决方案3】:

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

      如果您使用的是 JQuery:

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

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

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

      【讨论】:

      • 不幸的是,我没有使用 JQuery :( 我仍然需要了解它
      • 这就是所有需要的代码。在后端,照常进行:如果提交表单 -> 按钮 ID“first”的值是多少。回声 $_POST['first'];
      • @TerraSova,您不需要 JQuery 来执行此操作,可以找到使用 AJAX 的纯 JavaScript 示例here
      【解决方案4】:

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

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

      【讨论】:

        猜你喜欢
        • 2018-09-26
        • 2023-03-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-06-03
        • 1970-01-01
        • 2017-01-08
        • 1970-01-01
        相关资源
        最近更新 更多