当 ajax 代码在 wordpress 的自定义插件中打开时,数据库表条目停止

Posted

技术标签:

【中文标题】当 ajax 代码在 wordpress 的自定义插件中打开时,数据库表条目停止【英文标题】:Database table entry stooped when ajax code is on in cusom plugin in wordpress 【发布时间】:2018-01-12 04:35:53 【问题描述】:

当 ajax 代码处于运行模式时,当时数据库条目停止,当我评论 ajax 代码时数据库操作成功执行时,现在我在同一个文件中使用 ajax 代码和数据库插入代码。我知道它是最好在另一个文件中使用 ajax 代码,但我不知道如何在单独的文件中分隔 ajax 代码以及如何在插件主文件中调用该文件。

<?php 
 function add_new_Student() 

    if (isset($_POST['insert'])) 

        global $wpdb;
        $name = $_POST['name'];
        $role = $_POST['role'];
        $contact = $_POST['contact'];
//        var_dump($_POST);

        $table_name = $wpdb->prefix . 'Student_list';
        $wpdb->insert(
                "$table_name", //table
                array('name' => $name, 'role' => $role, 'contact' => $contact), //data
                array('%s', '%s', '%s') //data format
        );

        $message.="Student Added";
    
    ?>
    <div class="container">    

        <form method="post" id="frmdemo" class="form-horizontal myform" action="<?php echo $_SERVER['REQUEST_URI']; ?>">

            <div class="form-group">
                <label class="control-label col-sm-2" for="Name">Name:</label>
                <div class="col-sm-4">
                    <input type="text" class="form-control" id="name1" name="name" placeholder="Name">
                </div>
            </div>

             <div class="form-group">
                <label class="control-label col-sm-2" for="Role">Role:</label>
                <div class="col-sm-4">
                    <input type="text" class="form-control" id="role1" name="role" placeholder="Role">
                </div>
            </div>

            <div class="form-group">
                <label class="control-label col-sm-2" for="Contact">Contact:</label>
                <div class="col-sm-4">
                    <input type="number" class="form-control" id="contact1" name="contact" placeholder="Contact">
                </div>
            </div>

                    <button type="submit" class="btn btn-primary" name="insert"/>Submit</button>  
                    <button type="reset" class="btn btn-danger" name="reset"/>Reset</button>

                    <div id="error_message" class="ajax_response" style="float:left"></div>
                    <div id="success_message" class="ajax_response" style="float:left"></div>              

        </form>
    </div>

// ajax code here
<script src="http://code.jquery.com/jquery-1.10.2.js"></script>         
<script>
$("#frmdemo").submit(function(e) 
    e.preventDefault();
    var name = $("#name1").val();
    var role = $("#role1").val();
    var contact = $("#contact1").val();


    if(name == "" || role == "" || contact == "") 
        $("#error_message").show().html("All Fields are Required");
     else 
        $("#error_message").html("").hide();
        $.ajax(
            type: "POST",
            url: 'post-form.php',
            data: "name="+name+"&role="+role+"&contact="+contact,
            success: function(data)
                $('#success_message').fadeIn().html(data);
                setTimeout(function() 
                    $('#success_message').fadeOut("slow");
                    $('').fadeOut("slow");
                , 2000 );

            
        );
    
)
</script>   


    <?php

?>

【问题讨论】:

【参考方案1】:

在 ajax url: 'post-form.php', 中尝试添加 url:'&lt;?php echo get_permalink();?&gt;',

url: '<?php echo plugins_url("your_plugin_name/folderName/post-form.php"); ?>',

【讨论】:

使用了这段代码,但 ajax 仍然可以正常工作,但无法执行数据库输入。 url: '', 删除函数 simple start from isset($_POST['insert']) 因为你没有调用函数 其实这是插件的文件,这个功能是在插件的主文件中使用的,所以插件是必须使用的,我的问题是我想同时执行两个动作(ajax,数据库操作) 是的,ajax 工作正常,当我评论 ajax 代码时,数据库操作工作正常,但我希望同时进行这两个操作。 查看ajax发送了什么数据

以上是关于当 ajax 代码在 wordpress 的自定义插件中打开时,数据库表条目停止的主要内容,如果未能解决你的问题,请参考以下文章

wordpress 中的 Ajax 调用不适用于前端站点的订阅者用户

用 ajax 更新而不是替换 wordpress 自定义字段

如何在wordpress插件的自定义元框中保存多个复选框值?

Wordpress 过滤多个下拉分类以通过 ajax 显示自定义字段

使用 AJAX 将 Wordpress 帖子内容加载到 DIV

php WordPress的自定义库短代码