WordPress - 使用ajax获取数据库结果

时间:2015-10-15 13:39:00

标签: jquery ajax wordpress

早上好!我只是第一次在WordPress插件中试用AJAX,我有点难过。

基本上,我有2个div彼此相邻。左边有一个手机号码列表,右边一个应该包含与用户点击的手机号码的对话。 (它看起来很像iPad上的消息应用程序)。 我不想重新加载页面以切换到不同的对话,所以我认为这是一个很好的计划。如我错了请纠正我!

所以我有这个HTML :(简称为简称)

<div class="container">
  <div class="list_cell_numbers">
    <a href="" class="ajax-link" id="1238675309">123-867-5309</a>
    <a href="" class="ajax-link" id="9035768321">903-576-8321</a>
  </div>

  <div class="show_conversation">
    <!--Display Database Results Here -->
  </div>
</div>

这是我的jQuery:

jQuery(document).ready( function($) {
  $(".ajax-link").click( function() {
    var data = {
      action: 'sms_load_conversation',
      cell_number: $(this).attr('id')
    };

  $.post('http://example.com/wp-admin/admin-ajax.php', data,
    function(response) {
      alert(response)
    });

  });

});

这是我处理AJAX调用的Wordpress函数:

add_action('wp_ajax_sms_load_conversation', 'sms_load_conversation');
function sms_load_conversation() {
  global $wpdb;
  if( isset( $_POST["cell_number"] ) ) {
    $number = $_POST["cell_number"];
    $msgs = $wpdb->get_row("SELECT message, sent_date FROM sms_log WHERE cell_number = $number LIMIT 1");

    echo $msgs->message;

    wp_die();
  }
}

所以使用这段代码,我已经到了可以点击链接的地步,并返回了正确的结果 - 来自数据库的消息。我被困的地方是: 1-一旦返回,如何将此内容实际放入页面上的“show_conversation”div中 2-如何让AJAX响应具有多个字段的多个数据库结果?我觉得我需要让sms_load_conversation函数获取db结果,将结果格式化为HTML并将整个HTML返回给我的“show_conversation”div,但我不完全确定如何返回那么多信息。它只是一个巨大的字符串吗?

如果有人能提供方向,请提前多多谢谢!!!

1 个答案:

答案 0 :(得分:0)

在jQuery代码中,修改.post()响应,如下所示:

jQuery(document).ready( function($) {
  $(".ajax-link").click( function() {
    var data = {
      action: 'sms_load_conversation',
      cell_number: $(this).attr('id')
    };
    $.post(
      'http://example.com/wp-admin/admin-ajax.php',
      data,
      function(response) {
        $('.show_conversation').html(response);
      }
    );
  });
});