我正在编写一个应用程序,它使用ajax从使用php的mysql数据库中检索数据。由于应用程序的性质,用户点击了一个用于调用javascript/ajax的“onclick”事件的href链接。我从mysql中检索数据,然后调用一个单独的php函数,它创建一个带有必要数据的小型html表。新表传回给responseText并显示在div标签内。这些表格中只有大约10-20行数据。此功能工作正常,并以html格式显示数据,完全按照需要在页面上显示。使用多个javascript调用不显示数据的Ajax问题
问题是这样的。 HREF“onclick”事件需要一个接一个地运行多个脚本。第一个脚本更新“现有”数据,而“update_existing”函数内部的调用是使用responseText中更新的HTML刷新页面的一部分。然后,当这样做完成时,将调用“display_html”函数,该函数还使用新创建的HTML表更新页面的不同部分。事件是这样的:
更新
这个字符串变得内置动态使用与提供的参数PHP,但在这个例子中,我只是拿了出来参数,所以它没有得到混淆。
“update_existion()函数实际上调用了display_html()函数,它根据需要更新页面的一部分,我需要在更新后立即更新页面的不同部分,这就是为什么我再次调用display_html(),问题是只有最后一个调用正在屏幕上更新,换句话说,第二个函数调用“display_html()”会执行并显示刷新的数据很好,但以前对update_existing()的调用会正常运行和更新数据库,但除非按下浏览器的“刷新”按钮,否则不会显示在屏幕上,这当然会按照我想要的方式显示新数据,但我不希望用户不得不按下“刷新”按钮,我尝试添加多个“display_html()调用”,然后用分号和l分隔所有的“display_html赢得了只有最后一个函数调用实际刷新了带有表信息的html页面上的div元素,尽管之前的所有display_html()调用都起作用,但是在没有刷新浏览器的情况下,它们不能在页面上看到。
这是javascript还是ajax调用的问题,或者这是DOM中的一个限制,只允许一次更新一个元素。 ajax调用是异步的,但我已经尝试了两种,只有异步工作时期。这在Firefox和Internet Explorer中都是一样的
任何想法正在发生什么以及如何解决它,以便我可以运行这些多个脚本?
你能发布一个链接到网站吗? – Peter 2009-11-09 19:05:54