我有一个主要的php文件和一个javascript文件。我想使用jQuery / AJAX更新表单中的每个字段。我有所有正确的数据库更新sql等。这是我的jQuery错了。我有一个名为profile的表。以下是列名称:
截至目前,当我点击更新按钮时,它会将我重定向到空白页面,并在页面网址中显示更新的信息。当我检查我的数据库时,没有保存任何内容。
这是一个wordpress插件
这是我的代码
jQuery更新
jQuery(document).ready(function ($) {
eventHandlers = function () {
$('#cm-list').delegate('.update', 'click', function (event) {
event.preventDefault();
var row = $(this).parent()[0],
htmid = row.id,
id = htmid.replace('no_', ''),
fname = $('.fname', row).val(),
lname = $('.lname', row).val(),
sex = $('.sex', row).val(),
nationality = $('.nation', row).val(),
position = $('.position', row).val(),
json = { 'id': id, 'fname': fname, 'lname': lname, 'sex': sex, 'nationality': nation, 'position': position };
if (fname.length > 1) {
$.post(ajaxurl, { action: 'updateprofile', 'pro_data': json }, function (data) {
if (data) {
$.jGrowl(custom.profile_name + fname + lname + custom.edited, { header: custom.yes });
}
});
}
else {
$.jGrowl(custom.err, { header: custom.no });
}
});
},
cm_init = function () {
eventHandlers();
};
cm_init();
});
Php代码只是为了向您展示我的sql
我的函数updateprofile()在__construct()
里面add_action(wp_ajax ...... ajax hooks
function update() {
if (!isset($_POST['pro_data'])) {
return;
}
$this->db_update($_POST['pro_data']);
}
function db_update($input) {
global $wpdb;
$result = $wpdb->update($wpdb->prefix . CM_PROTBL,
array('fname' => $input->fname,
'lname' => $input->lname,
'sex' => $input->sex,
'nationality' => $input->nationality,
'position' => $input->position
),
array('id' => $input->id),
array('%s',
'%s',
'%s',
'%s',
'$s'
),
array('%d')
);
if ($this->return_result($result)) {
$this->renderprofile($input);
}
}
function renderprofile($input) {
$output = array(
'fname' => $input->fname,
'lname' => $input->lname,
'sex' => $input->sex,
'nationality' => $input->nationality,
'position' => $input->position
);
$this->renjson($output);
}
无法找到答案,所以感谢任何帮助!
编辑:目前,jQuery没有错误。当我单击更新按钮时。它将我带到一个空白页面,其中包含我提交的信息,这对我来说毫无用处。我希望它能够立即更新并提醒用户等。
编辑:获取未被捕获的语法错误:如果现在是意外的令牌,如果我取出分号。如果我在json变量后留下它,它会给我意外的令牌错误,如何解决这个问题?
编辑:我现在修复了这个错误,这是我的错误,我有一个额外的支架。它现在不会进入白色空白页面。该文本即将出现,例如简介约翰已被修改。但数据库中仍然没有任何变化。