Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/292.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 迭代td从数据库中获取值_Php_Mysql_Datepicker_While Loop - Fatal编程技术网

Php 迭代td从数据库中获取值

Php 迭代td从数据库中获取值,php,mysql,datepicker,while-loop,Php,Mysql,Datepicker,While Loop,我在数据库中进行了几次迭代,如: <?php $test = mysql_query("SELECT * FROM test WHERE id='1'"); while($row = mysql_fetch_array($test)) { echo "<tr>"; echo "<td>" . $row['value'] . "</td>"; echo "<td><input

我在数据库中进行了几次迭代,如:

<?php
    $test = mysql_query("SELECT * FROM test WHERE id='1'");
    while($row = mysql_fetch_array($test))
      {
      echo "<tr>";
      echo "<td>" . $row['value'] . "</td>";
      echo "<td><input type='text' id='datepicker' /></td>";
      echo "<td><button id='save'>Save</button></td>";
      echo "</tr>";
      }
?>

<?php
    $test = mysql_query("SELECT * FROM test WHERE id='2'");
    while($row = mysql_fetch_array($test))
      {
      echo "<tr>";
      echo "<td>" . $row['value'] . "</td>";
      echo "<td><input type='text' id='datepicker' /></td>";
      echo "<td><button id='save'>Save</button></td>";
      echo "</tr>";
      }
?>

问题在于jQuery日期选择器。它只适用于第一个输入,比如当测试表返回例如3个条目时,例如mysql、datepicker、save;oracle,日期选择器,保存;db2、datepicker、save、datepicker仅在我单击第一个输入时起作用,就像oracle、datepicker、save一样,但不适用于其余输入。您知道如何根据一个while范围内的表元素为每个列出的输入填充它吗?

使用单个SQL语句和单个循环,而不是将查询分解到分子级别:

<?php
$test = mysql_query("SELECT * FROM test WHERE id IN (1,2)");
while($row = mysql_fetch_array($test))
  {
  echo "<tr>";
  echo "<td>" . $row['value'] . "</td>";
  echo "<td><input type='text' class='datepicker' /></td>";
  echo "<td><button id='save'>Save</button></td>";
  echo "</tr>";
  }
?>

注意:请勿使用mysql_**函数。如果不推荐使用,请在HTML文档id中使用例如mysqli_**

。由于在循环中呈现HTML,几个HTML元素可以具有保存id。因此,jQuery选择器可能会获得第一个匹配元素,因为jQuery只假设文档有一个id。您可以使用类而不是id。除此之外,不要将它与PHP和HTML混淆。最佳做法是尽可能将它们分开


你介意给我一些密码吗?我想确定我会做对的是的。。。这将是最有效的,并将使我的代码muuuch更小,您能用上面示例中的完整代码显示它吗?非常感谢。但是datepicker仍然只适用于第一次输入:这可能是因为您使用的是ID而不是类,从而创建了具有相同ID的多个元素。请尝试将ID=datepicker替换为class=datepicker。显然,您还需要更改JQuery选择器哦,好了,现在可以了!:非常感谢。我使用了vlcekmi3备注,改为.datepicker而不是datepicker,并将您的答案与类一起使用,而不是id:非常感谢!
$test = mysql_query("SELECT * FROM test WHERE id IN (1,2)");
while( $row = mysql_fetch_array($test) ) {
  echo "<tr>
          <td>" . $row['value'] . "</td>
          <td><input type='text' class='datepicker' /></td>
          <td><button id='save'>Save</button></td>
        </tr>";
}
// datepicker issue - change unique identifier
<script>
  $(function() { $( ".datepicker" ).datepicker(); });
</script>
<?php $test = mysql_query("SELECT * FROM test WHERE id IN (1,2)"); ?>
<?php while($row = mysql_fetch_array($test)) : ?>
    <tr>
        <td><?php echo $row['value']; ?></td>
        <td><input type='text' class='datepicker' /></td>
        <td><button id='save'>Save</button></td>
    </tr>
<?php endwhile; ?>