【问题标题】:AJAX sending and receiving different data typeAJAX 发送和接收不同的数据类型
【发布时间】:2015-01-11 21:35:10
【问题描述】:

我制作了一个调用 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
    });
}

【问题讨论】:

  • 循环创建数组然后传入json格式解码成ajax成功函数
  • 你有什么理由不使用 jquery 的 .load() (因为你已经在使用 jquery)?
  • @AghaUmairAhmed:感谢您的回答;我显然不足以实现它。能不能给我举个例子。
  • @Markai:没有具体原因;我得试试。

标签: javascript php ajax


【解决方案1】:

使用类似的东西

<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);

【讨论】:

  • 感谢您抽出宝贵时间。我会尝试,但我还是有点失落。无论如何;再次感谢
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-07-17
  • 2017-06-25
  • 1970-01-01
  • 2019-01-20
  • 1970-01-01
  • 2011-06-08
  • 2017-02-19
相关资源
最近更新 更多