当 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:'<?php echo get_permalink();?>',
或
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 显示自定义字段