javascript - AJAX发送和接收不同的数据类型

标签 javascript php ajax

我创建了一个调用 php 文件的基本 AJAX 函数。响应是一个 HTML,将插入我的主页的“内容框”

function LoadAjax_alert_display_one(){
    id_alert = <?php echo $id_alerte; ?>;
    $('.preloader').show();
    $.ajax({
        mimeType: 'text/html; charset=utf-8', // ! Need set mimeType only when run from local file
        url: 'ajax/alert_display_one.php',
        data: "id_alerte="+id_alert,
        type: 'GET',
        success: function(data) {
            $('#ajax-content').html(data);
            $('.preloader').hide();
        },
        error: function (jqXHR, textStatus, errorThrown) {
            alert(errorThrown);
        },
        dataType: "html",
        async: false
    });
}

工作正常。被调用的文件“alerts_create.php”也正在运行 php 以从数据库获取数据并使用 while 循环显示它

while ($stmt->fetch()) {
    echo "<tr>";
        echo "<td><a href='#' onclick='LoadAjax_alert_display_one();'>" . $nom_alerte . "</a></td>";
        echo "<td>" . $country . "</td>";
    echo "</tr>";  }

我的问题是我无法正确传递在 while 循环中创建的链接。 $nom_alerte 始终采用循环最后一次迭代的值。所以我的AJAX将此作为链接值; 我有什么想法可以做到这一点吗?

为了澄清我的标题:我的问题是将 php 变量发送到被调用的文件('alerts_create.php')并检索 HTML 结果。

解决方案:只需将 php 变量作为 AJAX 函数参数传递即可:

function LoadAjax_alert_display_one(id_alerte){
        $('.preloader').show();
    $.ajax({
        mimeType: 'text/html; charset=utf-8', // ! Need set mimeType only when run from local file
        url: 'ajax/alert_display_one.php',
        data: "id_alerte="+id_alerte,
        type: 'GET',
        success: function(data) {
            $('#ajax-content').html(data);
            $('.preloader').hide();
        },
        error: function (jqXHR, textStatus, errorThrown) {
            alert(errorThrown);
        },
        dataType: "html",
        async: false
    });
}

最佳答案

使用类似的东西

<script type="text/javascript">
var data = 'abc=0';
$.post(
  'yoururl.php',
  data
).success(function(resp){
   var json = $.parseJSON(resp);
   console.log(json);
});

并在 php 文件中像这样使用

while( $stmt->fetch() ) {
   $data[] = array(
     'link' => 'your link'
   );
}

echo json_encode($data);

关于javascript - AJAX发送和接收不同的数据类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26930922/

相关文章:

PHP 7.2.1,未捕获错误 : Class 'mysqli' not found

php - 使用 AJAX 在同一页面中调用特定 PHP 函数

javascript - 在 FireFox 中有效但在 IE 6 中无效的 Ajax 函数

javascript - 是否可以将函数以字符串的形式存储并在调用字符串后调用它?

javascript - 使用javascript以管理员身份运行批处理的简单方法

javascript - 如何在for循环中组织promise并在javascript中的函数之间传递参数?

javascript - Next.js ( react ) & ScrollMagic

php - 如何在 Jquery 和 PHP 中连接字符串

php - 交响乐 : error while accessing an array

javascript - 缺少参数名称 :adi