【问题标题】:passing a PHP variable to Ajax call [duplicate]将PHP变量传递给Ajax调用[重复]
【发布时间】:2020-05-11 06:01:03
【问题描述】:

我正在尝试通过模式调用 cmets 部分,为此我需要传递一个唯一的 id 以及 #display_comment 。当我硬编码如#display_comment1、#display_comment2 时,它可以工作。我需要知道如何将值作为变量传递。

我正在使用 dom-target 将它作为变量传递给 myData1,但它不起作用。控制台在下一行显示#display_comment & 1。

<div id="dom-target" style="display: none;">
<?php       
  echo htmlspecialchars($test['id']);
?>
</div>
var div = document.getElementById("dom-target");
 var myData1 = div.textContent;
 load_comment();

 function load_comment()
 {
  $.ajax({
   url:"fetch_comment.php",
   method:"POST",
   success:function(data)
   {
    $('#display_comment'+myData1).html(data);
   }
  })
 }

【问题讨论】:

    标签: javascript php ajax


    【解决方案1】:

    DIV 在 ID 周围包含大量空格。您需要使用 trim() 删除它。

    var myData1 = div.textContent.trim();
    

    【讨论】:

      【解决方案2】:

      @barmar 写的是正确的。虽然我会为此建议一个更好的方法。每当您想将一些 html 数据“获取”到 javascript(此处数据由 PHP 设置)时,您可以像这样在 html 中使用 data 属性:

      <div id="dom-target" style="display: none;" data-id="<?php echo htmlspecialchars($test['id']);?>">
        <?php       
          echo htmlspecialchars($test['id']);
        ?>
      </div>
      

      看到我已经用 id 将data 属性设置为上面的div

      现在,当您想在 jQuery 中获取此 id 时,您可以使用 $("#dom-target").data("id"); 之类的方法

      var myData1 = $("#dom-target").data("id");
      

      这为您提供了一种更好、更简洁的方式来从 html 获取数据到 javascript。

      【讨论】:

        猜你喜欢
        • 2014-04-23
        • 2020-09-27
        • 1970-01-01
        • 2014-01-11
        • 1970-01-01
        • 2016-02-23
        • 2012-09-24
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多