2014-04-14 30 views
0

我有一个问题,在这里我使用jQuery/Ajax来运行的形式,将数据发送到外部文件,然后更新我的网页的一部分。但是,我遇到了一个问题:jQuery的 - 无法接收数据

外部网站的作品。当我手动运行该站点时,它会打印出与id="content"相同的div。

但是,当我尝试通过jQuery的从另一个文档收到此数据,也不会返回本场。

它可以运行所有的外部文件中的其他代码就好了,因为它执行的外部文件的数据库调用就好了。但是没有数据返回,因为执行代码时,“testlog”div(文本在这里)的文本就消失了,但没有被替换。

所以,你可以帮我,为什么我无法从外部文件中检索数据?

首先,这里是该文件的相关部分我想导入到:

<script> 
$(document).ready(function() { 
$("#moveN").submit(function(event) { 
    // Stop form from submitting normally 
    event.preventDefault(); 
    var $form = $(this); 
    term = $form.find("input[name='direction']").val(); 
    var posting = $.post("/modules/world/movement/move.php", { direction: term }); 
    posting.done(function(data) { 
     var content = $("#content", data).html(); 
     $("#testlog").html(content); 
    }); 
    }); 
}); 
</script> 
<div id="testlog">Text here<div> 

而且这里的外部文件的相关部分:

<div id="content"> 
Part i want imported. This should be filled in with data from this external file, but now we are just trying to get the retrieved by the other file. 
</div> 

我希望你们中的一些可以帮助新手:)

+0

你能发表你的表格的html代码吗.. –

+0

'data'的值是多少? –

+0

在此情况下,是一个像Firebug的工具或开发工具非常有用的工作,告诉我们什么是响应。 – HaSuKrOnOs

回答

3

如果内容是根,您将无法找到该元素,您需要对其进行过滤。

变化

var content = $("#content", data).html(); 

var content = $(data).filter("#content").html(); 
+0

谢谢,解决了它。我现在看到了这个问题,但我想它回到了学习手册。在我们讲话时学习jQuery,所以这对我来说是一种培训项目。再次感谢,为我节省了几个小时的头痛,现在我可以利用时间进行更多的学习! :) – Nick

-1

你可以使用jQuery.get()从html表单页面获取html

$.get("ajax/form-page.html", function(data) { 
    //here you have acess to the html form the form page 
    $(".result").html(data); 
    alert("Load was performed."); 
}); 

jQuery.get()是一个速记的Ajax功能,这相当于:

$.ajax({ 
    url: url, 
    data: data, 
    success: success, 
    dataType: dataType 
}); 

另一种选择是使用jquery's负载函数

<!DOCTYPE html> 
    <html> 
    <head> 
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"> 
    </script> 
    <script> 
    $(document).ready(function(){ 
     $("button").click(function(){ 
     $("#div2").load("form.html"); 
     }); 
    }); 
    </script> 
    </head> 
    <body> 

    <div id="div1"><h2>jQuery AJAX Load</h2></div> 
    <div id="div2"><h2>Let jQuery AJAX Change This Text</h2></div> 
    <button>Get External Content</button> 

    </body> 
    </html> 
-1

尝试发送成功函数作为参数传递给jQuery.post

<script> 
    $(document).ready(function() { 
    $("#moveN").submit(function(event) { 
     // Stop form from submitting normally 
     event.preventDefault(); 
     var $form = $(this); 
     term = $form.find("input[name='direction']").val(); 
     var posting = $.post("/modules/world/movement/move.php", { direction: term }, 
     function(data) { 
      var content = $("#content", data).html(); 
      $("#testlog").html(content); 
     }); 
    }); 
    }); 
</script> 
<div id="testlog">Text here<div> 

见参考文档:https://api.jquery.com/jQuery.post/ 在参考另请参阅那done函数没有收到任何数据,只有成功函数作为参数传递。