[英]jQuery - Can't receive data
我有一个问题,我使用jQuery / Ajax运行表单,将数据发送到外部文件,然后更新页面的一部分。 但是我遇到了一个问题:
外部站点有效。 当我手动运行站点时,它会使用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>
我希望你们中的一些可以帮助新手:)
如果内容是根,则将无法找到该元素,则需要对其进行过滤。
更改
var content = $("#content", data).html();
至
var content = $(data).filter("#content").html();
您可以使用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的加载功能
<!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>
尝试将成功函数作为参数发送到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
函数不接收任何数据,仅将成功函数作为参数传递。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.