【发布时间】:2009-11-09 18:35:30
【问题描述】:
我正在编写一个应用程序,它使用 ajax 来使用 php 从 mysql 数据库中检索数据。由于应用程序的性质,用户单击具有用于调用 javascript/ajax 的“onclick”事件的 href 链接。我正在从 mysql 检索数据,然后调用一个单独的 php 函数,该函数创建一个包含必要数据的小 html 表。新表被传回 responseText 并显示在 div 标签内。这些表中只有大约 10-20 行数据。此功能运行良好,并以 html 形式完全按照页面上的需要显示数据。
问题是这样的。 HREF“onclick”事件需要一个接一个地运行多个脚本。第一个脚本更新“现有”数据,并且在“update_existing”函数内部调用以使用来自 responseText 的更新后的 HTML 刷新页面的一部分。然后,当完成时,调用“display_html”函数,该函数还使用新创建的 HTML 表更新页面的不同部分。事件如下所示:
更新
这个字符串是使用提供参数的 php 动态构建的,但是对于这个例子,我只是把参数去掉了,所以它不会让人困惑。
“update_existion() 函数实际上调用了 display_html() 函数,该函数根据需要更新页面的一部分。我需要在更新后立即单击鼠标来更新页面的不同部分,即为什么我在它之后再次调用 display_html()。问题是我的屏幕上只有最后一个调用正在更新。换句话说,第二个函数调用“display_html()”执行并显示刷新的数据就好了,但是之前对 update_existing() 的调用会正确运行并更新数据库,但不会显示在屏幕上,除非我按下浏览器的“刷新”按钮,这当然会完全按照我想要的方式显示新数据,但我不希望用户必须按下“刷新”按钮。我尝试一个接一个地添加多个“display_html() 调用,用分号分隔所有调用,并了解到只有最后一个函数调用实际上刷新了html页面上的div元素与表格inf ormation,尽管之前的所有 display_html() 调用都有效,但如果不刷新浏览器,它们就无法在页面上看到。
这是 javascript 或 ajax 调用的问题,还是 DOM 中一次只允许更新一个元素的限制。 ajax 调用是异步的,但我都尝试过,只有异步工作期间。这在 Firefox 和 Internet Explorer 中都是一样的
任何想法发生了什么以及如何解决它以便我可以运行这些多个脚本?
【问题讨论】:
-
你能发一个网站的链接吗?
标签: php javascript mysql ajax