我正在尝试构建自己的前端AJAX更新屏幕镜像界面。
我有一个非常基本的形式:
<form id="mblocation">
<input type="radio" name="mb_user_location" id="mb_user_location1" value="1" checked="checked">
<label for="mb_user_location1">
<span>in office</span>
</label>
<input type="radio" name="mb_user_location" id="mb_user_location2" value="2">
<label for="mb_user_location2">
<span>out of office</span>
</label>
<input type="hidden" name="mb_user_id" value="1">
<input type="hidden" id="mb_location_nonce_field" name="mb_location_nonce_field" value="6b8a75521b">
<input type="hidden" name="_wp_http_referer" value="/inout/">
</form>
我希望每个
x
秒数取决于管理员在选项页中设置的时间
get_option(\'mb_heartbeat_time\')
:
function mb_ajax_updater( mb_heartbeat_time ) {
// get the user id
var mb_user_id = $(\'input[name="mb_user_id"]\').val();
// get the user current location
var mb_user_location_current = \'<?= get_user_meta( get_current_user_id(), \'mb_user_location_current\', true ); ?>\';
// get the current :checked location
var mb_user_location_checked = $(\'input[name="mb_user_location"]:checked\').val();
// is the saved location and the checked the same
if( mb_user_location_current == mb_user_location_checked ) {
// log the result
console.log( \'Result: same location!\' );
} else {
// save the new meta
// how to get the current location?
// how to get the previous location?
<?php update_user_meta( get_current_user_id(), \'mb_user_location_current\', ????? ); ?>
<?php update_user_meta( get_current_user_id(), \'mb_user_location_previous\', ????? ); ?>
// update the view
$("input#mb_user_location" + mb_user_location_checked ).prop( "checked","checked" );
}
// set the timer
setTimeout( mb_ajax_updater, mb_heartbeat_time );
}
// run it first time
mb_ajax_updater( <?= get_option(\'mb_heartbeat_time\'); ?> );
但我不确定我该从这里走到哪里。如何验证从
get_current_user_id
? 如何添加phppart,以便
update_user_meta
是否将更新?有没有比我正在尝试的更好的方法?
我只想在一个屏幕更新时,在设置分配的时间内将其反映到另一个屏幕上。