代码之家  ›  专栏  ›  技术社区  ›  Tommaso Lazzari

在使用while循环创建的表单中重命名输入字段ID

  •  0
  • Tommaso Lazzari  · 技术社区  · 7 年前

    我试图发布一个通过while循环生成的表单,该循环迭代表中的某些元素,这些元素的数量根据不同的公司而不同。因为输入/编辑字段的ID是由while循环创建的,它们都具有相同的ID,这在我尝试提交表单时造成了问题,有没有自动更改ID的方法?我尝试使用javascript但没有成功。有没有办法根据循环周期来命名ID?

    此外,是否有更好的方法根据要在SQL表中编辑的项的数量创建多个输入/编辑字段?

    echo '<form id="myForm" action="edit.php" method="POST">';
    echo '<div class="leftcontact">';
    
      $i=0;
      while($query_data = mysqli_fetch_row($result)) {
       $_SESSION["List"]=$query_data[2];
       $_SESSION["List_company_id"]=$query_data[0];
    
       $result2 = mysqli_query($connection, "SELECT * FROM `calling_lists` WHERE `calling_list_id`='".$_SESSION["List"]."'"); 
       $query_data2 = mysqli_fetch_row($result2);
       $_SESSION["list_name"]=$query_data2[1];
    
       echo '<div class="form-group">';
       echo '<p>List number</p>';
       echo '<select class="dropdown" name="ID">';
       echo "<option selected = 'selected' value=\"".$_SESSION["List_company_id"]."\">".$_SESSION["list_name"]."</option>";
    
            $query1="SELECT * FROM `calling_lists`";
            $result1=mysqli_query($connection,$query1) or die ("Query to get data from list table failed: ".mysql_error());
    
            while ($row1=mysqli_fetch_array($result1)) {
               $list_name=$row1["calling_list_name"];
               $list_description=$row1["calling_list_description"];
               $list_id=$row1["calling_list_id"];
       echo "<option value=\"$list_id\">"
              . $list_name . 
             "</option>";
            };
       $i=$i+1;
     };
    
    2 回复  |  直到 7 年前
        1
  •  0
  •   mattgl    7 年前

    只需使用$i变量创建while循环中发出的控件的id属性。因此,它们将被命名为例如__select1__、__select2_等等。

        2
  •  0
  •   Tommaso Lazzari    7 年前

    已经很晚了,我想不出答案,但我重新看了一眼,找到了答案。代码中实际上有两个问题,一个是缺少运算符,另一个是“'”有问题。

    下面是工作代码,以防有人需要它。它创建了许多下拉菜单,就像我的$results行一样多。

    希望它能帮助任何人。

    $i=0;
    
      while($query_data = mysqli_fetch_row($result)) {
    
    $_SESSION["List_company_id"]=$query_data[3];
    $_SESSION["List"]=$query_data[1];
    $_SESSION["list_name"]=$query_data2[2];
    
    echo '<div class="form-group">';
    echo "<p>List number $i</p>";
    echo '<span class="icon-case hidden-xs"><i class="fa fa-home"></i></span>';
    echo "<select class='dropdown' name=\"".$_SESSION['List_company_id']."\">";
    echo "<option selected = 'selected'  value=\"".$_SESSION["List_company_id"]."\">".$query_data[2]."</option>";
    
      $query1="SELECT * FROM `calling_lists`";
      $result1=mysqli_query($connection,$query1) or die ("Query to get data from list table failed: ".mysql_error());
    
            while ($row1=mysqli_fetch_array($result1)) {
    
              $list_name=$row1["calling_list_name"];
              $list_description=$row1["calling_list_description"];
              $list_id=$row1["calling_list_id"];
              echo "<option value=\"$list_id\">
              $list_name
              </option>";
        };
    
    echo "</select>";
    echo "</div>"; 
    $i=$i+1;
    };