Ajax在wordpress中无法正常工作

时间:2016-06-13 05:53:43

标签: jquery ajax wordpress wordpress-plugin

我正在开发一个插件,其中我使用ajax删除和更新有关上传文件的信息..

以下是代码:

//Creating AJAX for saving value in databsae
add_action('wp_ajax_input_value', 'input_value');
add_action('wp_ajax_nopriv_input_value', 'input_value');

add_action('wp_ajax_update_value', 'update_value');
add_action('wp_ajax_nopriv_update_value', 'update_value');

add_action('wp_ajax_delete_value', 'delete_value');
add_action('wp_ajax_nopriv_delete_value', 'delete_value');

add_action('admin_head', 'input_ajax');
function input_ajax()
{
    ?>
    <script type="text/javascript">
        jQuery(document).ready(function () {
            jQuery("#submit").click(function () {
                var input_method = jQuery('#image_url').val();

                var data = {
                    action: 'input_value',
                    input_method: input_method
                };

                jQuery.post('<?php echo admin_url('admin-ajax.php'); ?>', data, function (result) {
//                    alert(result);
                });
            });

            jQuery(".update").click(function () {
                var row = jQuery(this).parents('#list_item');
                var update_id = jQuery(this).data('id-update');
                var update_link = row.find('.img_link').val();
                var update_desc = row.find('.img_description').val();
                var update_title = row.find('.img_title').val();

                var data = {
                    action: 'update_value',
                   id: update_id,
                   update_link: update_link,
                   update_desc: update_desc,
                   update_title: update_title
                };

                jQuery.post('<?php echo admin_url('admin-ajax.php'); ?>', data, function (result) {
//                    alert(result);
                });
            });

            jQuery(".delete").click(function () {
                var delete_id = jQuery(this).attr('data-id');

                var data = {
                    action: 'delete_value',
                    id: delete_id
                };

                jQuery.post('<?php echo admin_url('admin-ajax.php'); ?>', data, function (result) {
//                    alert(result);
                });
            });

        });
    </script>
    <?php
}

//Save values in database in "wp_images" table
function input_value()
{
    $name = $_POST['input_method'];

    global $wpdb;
    $wpdb->insert(
        'wp_images',
        array(
            'img_path' => $name
        )
    );
    die();
    return true;
}

//Updating values in database in "wp_images" table
function update_value()
{
    $id = $_POST['id'];
    $link = $_POST['update_link'];
    $desc = $_POST['update_desc'];
    $title = $_POST['update_title'];

    global $wpdb;
    $wpdb->update(
        'wp_images',
        array(
            'img_title' => $title,
            'img_description' => $desc,
            'img_link' => $link
        ),
        array('img_id' => $id)
    );
    die();
    return true;
}

//Deleting values in database in "wp_images" table
function delete_value()
{
    $id = $_POST['id'];
    global $wpdb;
    $wpdb->delete(
        'wp_images',
        array('img_id' => $id)
    );
    die();
    return true;
}

它会正确删除和更新,但不会立即删除。意味着如果我删除它仍然存在的任何行,但当我刷新页面然后它被删除。我不知道我在哪里做错了。

1 个答案:

答案 0 :(得分:0)

到目前为止,您的代码看起来很不错,但您没有使用新响应刷新或清除HTML部分。

您的代码正在通过帖子,但未在您的实际DOM中显示任何新数据,因为您没有编写新的响应代码。