我在数据库中的迭代很少,如:
<?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 datepicker。它仅适用于第一个输入,例如当测试表返回例如3个条目(例如,mysql,datepicker,save; oracle,datepicker,save; db2,datepicker,save)时,datepicker
仅适用于第一个输入当我点击它时输入(比如oracle,datepicker,save),但不是其余的。任何想法如何根据一个范围内的表元素为每个列出的输入填充它?
答案 0 :(得分: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>";
}
?>
答案 1 :(得分: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_**
答案 2 :(得分:0)
在HTML文档中,id应该是唯一的。由于您在循环中呈现HTML,因此几个HTML元素可以具有保存ID。因此,jQuery选择器可能会获得第一个匹配元素,因为jQuery只假定文档的一个id。您可以使用class而不是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; ?>