【问题标题】:AJAX data not displayed in pageAJAX 数据未显示在页面中
【发布时间】:2020-06-01 10:40:17
【问题描述】:

总结一下我在这里想要实现的目标:

  • index.php 内部,当在下拉列表中选择一个选项时,使用onchange="displayData(this) 事件在<select> 内部调用一个函数
  • 此函数对 PHP 页面 (target.php) 执行 AJAX POST 请求,其中 data 内的所选选项的 value
  • PHP 页面显示在页面上的div

这里是函数,使用jQuery:

function displayData(str){
  $.ajax({
    url: "target.php",
    type: "POST",
    data: {"value": str.value},
    success: function(data){
      console.log(data);
    }
  });

  $('#my-div').load('target.php');
}

为方便起见,PHP 页面如下所示:<?php echo $_POST['value']; ?>

success 上记录data 时,一切似乎都正常,$_POST['value'] 的值正确显示在控制台中。但是在页面本身中,我收到一个错误:

注意:未定义的索引:值

对不起,如果这看起来有点愚蠢,但我无法弄清楚我做错了什么......所以我想问问社区。谢谢你们的帮助!干杯。


【问题讨论】:

  • ` $('#my-div').load('target.php');` 这是调用并再次加载您的视图执行,您正在读取值<?php echo $_POST['value']; ?> 和 jquery 加载函数执行get方法。
  • $.ajax.load 都是从服务器获取数据的一种方式。所以在你的情况下不需要同时使用它们。如果你通过 value 和 @987654339 @你需要使用$_GET['value'].. 最好看看.load()

标签: php jquery mysql ajax


【解决方案1】:

请试试这个。 你需要从target.php页面返回结果

function displayData(str){
  $.ajax({
    url: "target.php",
    type: "POST",
    data: {"value": str.value},
    success: function(data){
      $('#my-div').html(data);
    }
  });

}

【讨论】:

    【解决方案2】:

    如果您使用 .load() 您的浏览器将向 target.php 发出另一个 GET 请求并显示它,因此您的 $_POST 将为空。 您可以在成功中使用$('#my-div').html(data):ajax 或者您可以在 php 中使用 $_GET 而不是 $_POST 并像这样在 url 中传递变量

    $('#my-div').load('target.php?value='str.value);

    【讨论】:

      【解决方案3】:

      嘿,问题很简单,如果您将从 ajax 获取的数据值发布到 target.php,那么 $('#my-div').load('target.php') 应该在 ajax 成功函数中,并且您必须使用 $("#my-div").html(data) 之类的 html 函数来放置数据。它会直接在div里面加载html格式的数据。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-06-20
        • 2016-04-13
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多