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 の場合と同様) ですが、残りの場合はそうではありません。one while のスコープ内のテーブル要素に基づいて、リストされたすべての入力に対してそれを設定する方法はありますか?

4

3 に答える 3

0

HTML ドキュメントでは ID は一意である必要があります。ループ内で HTML をレンダリングしているため、いくつかの HTML 要素は保存 ID を持つことができます。そのため、jQuery はドキュメントの ID を 1 つだけ想定するため、jQuery セレクターは最初に一致する要素を取得できます。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 に答える
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_**(非推奨です)、egを使用してくださいmysqli_**

于 2012-12-05T11:35:50.083 に答える