mysql - Wordpress Ajax 向 MySQL 插入数据

标签 mysql ajax wordpress

我正在使用 Wordpress,并且正在尝试为我的个人目的(学习)开发一个插件。 目前,我已经为插件激活和停用创建了一个主文件 (wp-maincat.php),它在 WordPress 中创建了名为 categ_tag 的自定义表。

此文件还创建一个菜单并包含另外 3 个页面:

  • Page.3:(问题)Wordpress“标签”页面的克隆。

在该页面中,我想在左侧创建提交部分,在右侧创建使用 AJAX 显示结果的表格,这样就无需重新加载页面。

问题是,当我按下提交按钮时,没有任何反应,或者更好的是我收到一个没有错误的 alert() 。另一方面,alert() 告诉我代码返回一个错误。另一个问题是我看不到数据库中是否已经有一些行。

如果我删除url:ajaxurl,代码可以工作,但在responds div中它会加载整个wordpress页面。任何帮助,将不胜感激!

这是一些代码。

更新

这部分在数据库中添加条目

global $wpdb;
$table_name = $wpdb->prefix."categ_tag";

if(isset($_POST["content_txt"]) && strlen($_POST["content_txt"])>0) {
    $contentToSave = $_POST["content_txt"];

    $insert_row = $wpdb->query($wpdb->prepare(" INSERT INTO $table_name ( name_cats ) VALUES ('".$contentToSave."')"));

    if($insert_row) {
          $my_id = $mysqli->id; //Get ID of last inserted row from MySQL
          echo '<li id="item_'.$my_id.'">';
          echo '<div class="del_wrapper"><a href="#" class="del_button" id="del-'.$my_id.'">';
          echo '<img src="images/icon_del.gif" border="0" />';
          echo '</a></div>';
          echo $contentToSave.'</li>';  
    }else{
        header('HTTP/1.1 500 Looks like mysql error, could not insert record!');
        exit();
    }
}

?>

这是生成问题的代码部分 (ajaxurl)

<script>
jQuery(document).ready(function($){

    $("#publish").click(function (e) {
            e.preventDefault();

            var myData = 'content_txt='+ $("#name_cats").val();
            var ajaxurl = "<?php echo admin_url('admin-ajax.php'); ?>";
            jQuery.ajax({
                type: "POST",
                url: ajaxurl, // <------- The problem is here
                dataType:"text",.
                data:myData,
                success:function(response){
                    $("#responds").append(response);
                    $("#name_cats").val('');
                    $("#publish").show();
                    $("#LoadingImage").hide();
                },
                error:function (xhr, ajaxOptions, thrownError){
                    alert(thrownError);
                }
            });


    });
    });
    </script>

表格

    <h2>Category Tags</h2>  
    <div id="col-left">
        <h3>Add New Category</h3>
        <form id="addcats" method="post">
            <div class="form-field">
                <label for="tag-name">Name</label>
                <input id="name_cats" name="name_cats" type="text" style="width: 95%" value="<?php echo esc_attr($item['name_cats'])?>" class="code" required />
            </div>
            <p class="submit">
                <input type="submit" name="publish" id="publish" class="button" value="Submit"  />
            </p>    
        </form>
    </div>

    <div id="col-right">
        <h3>Category List</h3>
        <ul id="responds">

        </ul>
    </div>

最佳答案

我建议通过 Ajax 发布数据的最简单方法:

jQuery('#category').on('change', function() {
    var sel_id = this.value; // or $(this).val()
    jQuery.ajax({
            type: "POST",
            url: "<?php echo get_site_url().'/ajaxdataform.php'; ?>",
            data: {sel_id: sel_id },
            success: function(data) {
            if(data != ''){
                jQuery('#sub_category').html(data);
            }else{
                jQuery('#sub_category').attr('disabled', true);
            }
        },     
    });
});

从“ajaxdataform.php”的另一端,我们得到如下的发布数据:

<?php

require( dirname(__FILE__).'/wp-load.php' );

$sel_id = $_POST['sel_id'];

$sql = "SELECT * FROM job_sub_category WHERE cat_id = $sel_id";
$result = mysql_query($sql);

while($row = mysql_fetch_array($result)) {
    echo $row['sub_category'];
}

像这样,您可以触发插入查询。

关于mysql - Wordpress Ajax 向 MySQL 插入数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23968186/

相关文章:

javascript - 我正在尝试根据 AJAX 成功调用返回的内容编写条件

CSS 图像不 float 在导航旁边

javascript - Owl Carousel 不会自动播放

asp.net - 基于 ASP.NET 的网站的数据库建议和最佳实践?

mysql - Sphinx 为 mysql 主键自增 id 创建属性

MySQL获取第一条记录和第n条记录的时间差

php - 在 JQUERY/AJAX 中使用 .html() 更新 MySQL

javascript - 如何在 JavaScript 中管理复杂的异步处理?

javascript - 如何使用 laravel ajax 发布和获取评论而不重新加载页面?

wordpress - 在 WordPress 中以编程方式添加带有缩略图的帖子