基本上,我有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,但我不完全确定如何返回那么多信息。它只是一个巨大的字符串吗?
如果有人能提供方向,请提前多多谢谢!!!
答案 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);
}
);
});
});