在对话框中进行更改时,我正在尝试更新自定义数据库表。对话框和ajax调用的脚本如下所示-
jQuery(document).ready(function($){
$("td > span").click(function(){
var id = $(this).attr(\'id\');
var message = "message"+id;
var content = jQuery("#"+message).text();
var $dialog = $("<div></div>").html("<textarea style=\'width:99%; height:90%\' class=\'popup-content\'>"+content+"</textarea>").dialog({
height: 400,
width: 400,
title: \'My Data\',
modal: true,
autoOpen: false,
dialogClass: \'wp-dialog\',
buttons: {
"Save": function(){
$("#"+message).html($(".popup-content").val());
$.ajax({
type: "post",
url: script_data.admin_ajax,
data: {
action: "feedmng_update",
feed_id: id
}
});
}
}
});
$dialog.dialog("open");
});
});
除Ajax部分外,上述脚本运行良好。上面的代码是一个单独的javascript文件,我甚至将其放入php文件中。以下是与Ajax调用相关的代码,用于更新在Ajax调用期间传递id的数据库-
function __construct(){
add_action( \'wp_ajax_feedmng_update\', array( &$this, \'feedmng_update\' ) );
add_action( \'init\', array( &$this, \'feedmng_load_scripts\' ) );
}
function feedmng_update(){
global $wpdb;
$feedid = $_REQUEST["feed_id"];
$wpdb->update( $wpdb->feedmanager, array( \'message\' => "New data" ), array( \'id\',$feedid ) );
}
function feedmng_load_scripts(){
wp_enqueue_script( \'jquery\' );
wp_enqueue_script( \'jquery-ui-core\' );
wp_enqueue_script( \'jquery-ui-dialog\' );
wp_enqueue_style ( \'wp-jquery-ui-dialog\' );
wp_register_script( \'feedmng-popup\', WP_PLUGIN_URL.\'/feed-manager/mypopup.js\', array( \'jquery\', \'jquery-ui-core\', \'jquery-ui-dialog\' ) );
wp_enqueue_script( \'feedmng-popup\' );
wp_localize_script( \'feedmng-popup\', \'script_data\', array( \'admin_ajax\' => admin_url( \'admin-ajax.php\' ) ) );
}
EDIT在脚本中添加了以下内容,console显示“Success”
success: function(){
console.log("Success");
}
我的表名是wp\\u feedmanager,我正在尝试更新它的“message”列。但它只是不更新?有什么建议该怎么做?
For future reference -
问题就在这里-更新查询的第三个参数应该是
array( \'id\' => $feedid )此外,还需要包括Milo建议的关于tablename的编辑!