javascript - Ajax 调用以纯字符串格式返回数据。

标签 javascript php jquery html ajax

在 PHP 中我可以做这样的事情:

echo "<div>".$myvariable."</div>";

这将用 HTML 中的 div 打印出我的变量作为其标签。但是最近,我需要使用 jquery 进行 ajax 调用。我对 ajax 有点熟悉,但我用得不多。无论如何,我运行 ajax 代码,它像我想要的那样将数据打印到我的 HMTL 元素框中,但是,div 标签与内容本身一起打印和显示!

整个返回数据几乎是 1 个长字符串,而不是像我希望的那样由 PHP 解析我的数据。我哪里做错了?为什么它只返回 1 个长字符串?

PHP 代码:

<?php

require 'database.php';

$meal = $_POST['meals'];

$meal_q = "SELECT item
              FROM meal_ingredients
              WHERE meal_name='$meal'
              ORDER BY item";

$meal_c = $conn->query($meal_q);
    while ($row = $meal_c->fetch_assoc()){
         $view_ingredient = $row['item'];
         echo "<div>".$view_ingredient."</div>";
    };

?>

JQUERY 代码:

if($('body').hasClass('CreateMealPage')){

    $('tr').on('click', function(e){
        $('#sidebar').animate({right: '-200px'}, 500);
        var meals = $(this).find('.meals').text();

        $.ajax({
          method: "POST",
          url: 'meal_list.php',
          data: {meals: meals},
          success: function(data) {
            var sidebar = document.getElementById('sidebar');
            sidebar.innerHTML = "";
            sidebar.append(data);
          }
        });
    });

};

屏幕上呈现的内容:

<div>ingredientname</div>
<div>ingredientname</div>
<div>ingredientname</div>

而不是:

ingredientname
ingredientname
ingredientname

最佳答案

只是替换

sidebar.innerHTML = "";
sidebar.append(data);

sidebar.innerHTML = data;

要回答您的评论,您可以在 jquery 中使用 append with following

$(sidebar).append($(data))

所以需要使用 jquery 的 append,而不是 append,来自 dom api,它只在参数中接受一个节点元素。如果您仍然需要使用 dom api 的追加,请使用类似:

sidebar.append(document.createRange().createContextualFragme‌​nt(data))

关于javascript - Ajax 调用以纯字符串格式返回数据。,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46994729/

相关文章:

javascript - 使用 jAlert 作为简单的提示

javascript - 尝试在 vue js 中上传图像时未捕获类型错误非法调用?

php - 拖放,编辑器

javascript - 卡住下一个和上一个事件

javascript - 按钮 onclick ="e.preventDefault(); return true;"给出 e 未在浏览器控制台中定义

javascript - 在 JavaScript 中从高位和低位 32 位部分创建 64 位整数时,如何防止值太大?

php - 将 Active Campaign 连接到数据库的更简单方法是什么?

php - 显示 MySQL 中特定行的数据

jquery - 非法调用 (jQuery)

javascript - 如何在组件中监听 redux Action 流