2

我对数据库进行了几次迭代,例如:

<?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、datepicker、save;db2、datepicker、save),datepicker仅在我单击它时适用于第一个输入(如 oracle、datepicker、save),但不适用于其余部分。知道如何根据一段时间范围内的表元素为每个列出的输入填充它吗?

4

3 回答 3

0

不要将查询分解到分子级别,而是使用单个 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>";
  }
?>
于 2012-12-05T11:23:19.653 回答
0
$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>

注意:不要使用mysql_**函数(已弃用),使用例如mysqli_**

于 2012-12-05T11:35:50.083 回答
0

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

<?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; ?>
于 2012-12-05T12:25:05.983 回答