繁体   English   中英

jQuery-无法接收数据

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM