调用jquery.load();来自现有的javascript文件

时间:2010-02-08 19:38:51

标签: php javascript jquery ajax

我不是试图用jquery或任何类似的东西加载javascript。

目前我正在修改swfupload(如果你熟悉它,很棒,否则它应该没关系)与我正在建立的网站一起工作。我需要能够上传,存储和删除文件。我上传和存储工作很棒。

我有一个名为handlers.js的文件,它运行大多数交互。我想修改其中一个函数(当用户点击一个小取消按钮时调用的函数)来调用php文件。我知道如何做到这一点的唯一方法是使用jquery的加载函数。 但我似乎无法让它发挥作用?

如何在javascript文件中访问这些内容?

我试过了:

alert($("#messages").html());
$("#messages").load("delete_file.php", {name: this.id});

消息是我页面中的一个div,这些都不起作用。虽然我没有任何错误......

任何帮助都会很棒!

3 个答案:

答案 0 :(得分:0)

我不确定我完全理解你的问题。您是否尝试修改现有元素的onclick处理程序,或者您是否尝试加载该页面?

根据您发布的代码,首先,订单很重要。所以,当你执行alert时,messages div中没有​​任何内容。这就是你在警报中看不到任何内容的原因。

其次,load函数是异步的,因此您实际上需要回调:

$("#messages").load("delete_file.php", {name: this.id}, function() {
   alert($("#messages").html());
});

答案 1 :(得分:0)

你想做一个ajax fetch,我想,比如:

$.get( 
   'delete_file.php', 
   { name: this.id }, 
   function(htmlFromServer)
   { 
       $("#messages").html(htmlFromServer) 
       //do other things with the html that comes down 
   } 
);

阅读http://api.jquery.com/jQuery.get/

答案 2 :(得分:0)

如果delete_file.php正在执行将更改状态或数据的操作,则不建议使用GET执行此操作($.load()$.get())。

始终POST发送将更改现有数据或状态的数据。

$.post("delete_file.php",
       {name: this.id},
       function(data){
         $("#messages").html(data);
       });

这是一种最佳做法,因为如果您从delete_file.php变量中获取name进程$_GET,那么像谷歌网络爬虫蜘蛛一样简单的事情可能会对您的数据造成严重破坏时间。