使用jQuery / AJAX更新MySQL表

时间:2015-04-09 04:40:15

标签: javascript php jquery mysql ajax

我有一个主要的php文件和一个javascript文件。我想使用jQuery / AJAX更新表单中的每个字段。我有所有正确的数据库更新sql等。这是我的jQuery错了。我有一个名为profile的表。以下是列名称:

Profiles

截至目前,当我点击更新按钮时,它会将我重定向到空白页面,并在页面网址中显示更新的信息。当我检查我的数据库时,没有保存任何内容。

这是一个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变量后留下它,它会给我意外的令牌错误,如何解决这个问题? Error

编辑:我现在修复了这个错误,这是我的错误,我有一个额外的支架。它现在不会进入白色空白页面。该文本即将出现,例如简介约翰已被修改。但数据库中仍然没有任何变化。

0 个答案:

没有答案