【问题标题】:Change Jquery.Append with PHP Loop使用 PHP 循环更改 Jquery.Append
【发布时间】:2011-12-06 21:36:56
【问题描述】:

我想创建一个 PHP 循环来获取数据库表中的所有 id,并在 .append 函数中使用它们。基本上我想要发生的是对于通过数据库的每个循环,我希望 jquery.append 运行并将其#div 标签更改为来自数据库中的字段 div-id

例如;

$('#div-id').append('HELLO CONTENT');

我知道我可以使用.each,但这并不能解决 PHP 部分。我可以在 PHP 上做一段时间,但这不涉及 Jquery 部分。基本上我的看法是,他们正在创建自己的循环而不是一起工作。

【问题讨论】:

  • 我不太清楚你要做什么,但由于 PHP 在服务器端运行,它会在任何运行在客户端的 JS 之前执行。
  • 我正在尝试定位我页面上的特定 div,这些 div 的 id 存储在数据库中。

标签: php jquery loops append


【解决方案1】:

你不能像这样结合 PHP 和 JavaScript。 PHP 在服务器上运行,一旦完成,就会生成一个(很可能)HTML 页面,并将其发送回请求的浏览器。然后在那里将 HTML 渲染到您看到的网页中,然后执行每个 JavaScript。至此,PHP早就执行完毕了。

【讨论】:

  • 哈,我知道有人会这么说,但有人建议我使用数组,但我永远无法弄清楚它们如何与 jquery 一起工作
  • 您当然可以将 ids 输出为 JavaScript 数组(只需在您的页面上输出 var myIds = new Array(1, 2, 3); somwhere),然后使用该数组通过 jQuery 显示某些内容。但是您也可以直接输出 id。
  • 我很想简单地使用 php 循环遍历 id,但是我仍然需要在 jquery 上进行某种循环来更改#div 标签以从数据库中定位页面上的指定 div .
【解决方案2】:

您可以在 PHP 页面输出的 <script> 标记中执行此操作。我假设标准 MySQL,应该很容易将其适应另一个数据库。

<!-- rest of page -->
<script type="text/javascript">
<?php

  // Get all the results from the DB
  $result = mysql_query("SELECT `div-id`, `content` FROM `table` WHERE `some_field` = 'some value'");
  // loop the db results
  while ($row = mysql_fecth_assoc($result)) echo "$('#{$row['div-id']}').append('{$row['content']}');\n";

?>
</script>
<!-- rest of page -->

应该输出类似:

<!-- rest of page -->
<script type="text/javascript">
  $('#div-id1').append('HELLO CONTENT1');
  $('#div-id2').append('HELLO CONTENT2');
  $('#div-id3').append('HELLO CONTENT3');
</script>
<!-- rest of page -->

...所以你用 PHP 做循环,只输出几行 JS,它会一个接一个地执行。

或者,您可以在 PHP 中循环 $result 并创建一个大数组,然后 json_encode() 它并在 JS 中循环它。您的选择。

【讨论】:

  • 我确实尝试过考虑使用 json_encode 来处理数组,但是当我真正这样做时,我对自己更加困惑了哈哈谢谢你的代码,我从没想过在
猜你喜欢
  • 2015-10-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-09-15
  • 2017-07-26
  • 2014-12-19
相关资源
最近更新 更多