【问题标题】:How to create a for each PHP loop to set variables from table data如何为每个 PHP 循环创建一个从表数据中设置变量的循环
【发布时间】:2012-05-20 16:49:57
【问题描述】:

PHP 初学者:

我有一个基于表格数据的表单,用户也可以添加任意数量的行,目前我正在调用我的 .php 中的数据,例如:

$para01 = $_POST["1_0"];
$url01 = $_POST["1_1"];
$para02 = $_POST["2_0"];
$url02 = $_POST["2_1"];

等等

我想要一种调用表格数据的方法,这样我就可以满足 x 行数

所以,我的伪代码是:

  • 对于每一行,将单元格 id 0 应用于 $url 并将 id 1 应用于 $para
  • 然后在一些 html 中回显 url 和 para
  • 重复直到所有行都表达完毕。

【问题讨论】:

    标签: php forms


    【解决方案1】:

    您应该将 url 和 para 设为(二维)数组。然后,使用二维 for 循环遍历 _POST[] 变量。将值添加到数组中,并在必要时打印它们。

    【讨论】:

      【解决方案2】:

      你应该使用数组! 一个简单的方法是调用所有的 post 变量,然后用 php 对它们进行排序......

      假设表单输入字段如下所示,我很快就为您完成了:

      表单开始 网址1 第 1 段 网址2 第 2 段 网址3 第 3 段 等等……

      提交 端形

      $i=1;
      $urls = array();
      $paras = array();
      foreach($_POST as $variable){
          if($i==1){
              array_push($urls,$variable);
              $i++;
          }else{
              array_push($paras,$variable);
              $i=1;
          }
      }
      echo'<table><tr><td>';
      foreach($urls as $url){
          echo $url.'<br />';
      }
      echo'</td><td>';
      foreach($paras as $para){
          echo $para.'<br />';
      }
      echo'</td></tr></table>';
      

      编辑

      你可以像这样配对它们......

       $_POST = array('url1','paragraph1','url2','paragraph2','url3','paragraph3');
      $urls = array();
      $paras = array();
      $i=1;
      $c=0;
      foreach($_POST as $variable){
          if($i==1){
              array_push($urls,$variable);
              $i++;
          }else{
              array_push($paras,$variable);
              $i=1;
           $c++;
          }
      }
      
      echo'<table>';
      for($x=0;$x<$c;$x++){
         echo'<tr><td>'.$urls[$x].'</td><td>'.$paras[$x].'</td></tr>';
      }
      echo'</table>';
      

      【讨论】:

      • 谢谢你-我让它工作了,但是我如何在第一个 foreach 循环中获得 para,而不是分开它?每个索引的 url 和 para 都需要在循环中配对。
      • 我编辑了上面...现在您可以将它们与行配对,您甚至可以给 td 一个 id...例如,
      • 感谢您的编辑-但似乎对我不起作用? else 前面需要 } 吗?我添加了它,但我得到另一个解析器错误;第 20 行?
      • 是的!哈哈,对不起!是的,else 之前需要一个右括号。
      • 我真的应该在发送之前检查我的代码,我只是写得很快,所以你可以明白。如果您有任何其他问题,请告诉我!
      【解决方案3】:

      是的,您可以将其用作数组。就像,

      <input type="text" name="para[]" />
      <input type="text" name="url[]" />
      
      <input type="text" name="para[]" />
      <input type="text" name="url[]" />
      
      <input type="text" name="para[]" />
      <input type="text" name="url[]" />
      

      而在php中,你可以使用like

      <?php
      foreach($_POST[para] as $key=>$val)
      {
      }
      
      foreach($_POST[url] as $key=>$val)
      {
      }
      ?>
      

      【讨论】:

        猜你喜欢
        • 2011-10-22
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-08-03
        • 2020-11-01
        相关资源
        最近更新 更多