【问题标题】:How can I get keys of a name attribute如何获取名称属性的键
【发布时间】:2016-06-08 11:58:38
【问题描述】:

我在复选框输入中有这个name="opt['.$id.']" value="'.$points.'"。有人知道我如何获得$id吗?

更新:

foreach($_POST['opt'] as $id => $value) { 

                $gift_ids = $value;
                $gift_ids2 = implode(", ", $gift_ids);
                               }
                    echo $gift_ids2;

    } 

但我对 echo 没有任何价值..

【问题讨论】:

  • 如何获得$id?你这是什么意思?请在写任何问题时提供完整的详细信息。
  • 您是否在提交表单时尝试print_r($_POST); 以查看您在帖子中收到的内容? (如果表格通过邮寄方式发送。)
  • 我使用print_r 得到这个Array ( [opt] => Array ( [1] => 100 ) [eksasrgirwsh] => ) 。但我真的不知道如何回显$id 或将其存储在数据库表中。有什么想法吗?
  • @platanas20 在答案上发布有关答案的问题,不要用提供的答案更新您的问题并更改问题。您有一个尾随 } 并且 $gift_ids 不是一个数组。

标签: php html arrays


【解决方案1】:

您需要遍历 HTML 数组。这样的事情应该为你做:

foreach($_POST['opt'] as $id => $value) {

演示:https://eval.in/585379

【讨论】:

    【解决方案2】:

    您使用的数组,因此您需要迭代 $_POST['opt']

    $_POST = array('opt' => array('1'=>100 ), 'eksasrgirwsh' => 'other');
    
    foreach($_POST['opt'] as $id => $value) 
    {
    
      echo   $id //key example 1
    
      echo  $value //value  example 100
    
    
     }
    

    【讨论】:

      【解决方案3】:

      如果你的$_POST是这样的

      $_POST = array('opt' => array('1'=>100 ), 'eksasrgirwsh' => 'other');
      

      并且您将 $_POST['opt'] 提供给 foreach 那么您的 foreach 数组是

      $_POST['opt'] = array('1'=>100);
      

      那么你不能在foreach 中使用implode,因为它会给你一个错误。不使用implode

      foreach($_POST['opt'] as $id => $value) { 
      
                      $gift_ids = $value;
      
                      echo $gift_ids;
                                     }
      

      【讨论】:

      • 你是对的!但在这种情况下Array ( [1] => 100 [2] => 200 ) 我想将两个 id 都存储在数据库中。而不是这个我只存储第二个 id (2)..
      • 也许你是对的,但我找不到问题所在
      • @platanas20 好吧,我们不是魔术师,所以您必须为确切您实际尝试做的事情提供详细的描述和代码。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2010-10-14
      • 2017-05-04
      • 2015-09-20
      • 1970-01-01
      • 2022-08-23
      • 1970-01-01
      • 2010-10-29
      相关资源
      最近更新 更多