Javascript jQueryAjax将数据传递到另一个php文件以更新数据库只允许更新一次(Wordpress)
我试图使用POST方法将数据重定向到Wordpress中名为functions.php的文件中。它能够将从文本框检测到的数据发送到该文件,并通过使用wp_send_json($_POST)获取返回值。获取返回值后,段落的值可以更改为新值。但它只允许我更新一次,除非页面被刷新或重新加载。我做错了什么或错过了什么?下面是我在这个过程中的代码 functions.phpJavascript jQueryAjax将数据传递到另一个php文件以更新数据库只允许更新一次(Wordpress),javascript,php,jquery,ajax,wordpress,Javascript,Php,Jquery,Ajax,Wordpress,我试图使用POST方法将数据重定向到Wordpress中名为functions.php的文件中。它能够将从文本框检测到的数据发送到该文件,并通过使用wp_send_json($_POST)获取返回值。获取返回值后,段落的值可以更改为新值。但它只允许我更新一次,除非页面被刷新或重新加载。我做错了什么或错过了什么?下面是我在这个过程中的代码 functions.php function test_load(){ if(isset($_POST) && $_POST['elem
function test_load(){
if(isset($_POST) && $_POST['element'] == 'header')
{
$name = $_POST['name'];
$hidden = $_POST['hidden'];
if( $hidden == 'tagline')
{
update_option( 'wpbst_tagline', $name );
}
else if( $hidden == 'footer')
{
update_option( 'wpbst_footer', $name );
}
wp_send_json($_POST);
}
}
add_action('init', 'test_load');
脚本
<script>
$(document).ready(function(){
function custom_update_box( id ) {
$(id).click(function () {
if(id == '#tagline')
{
var dynamicDialog = $('<div>\ <label>\ Tagline :\ </label>\ <input type="hidden" value="tagline" id="hidden">\ <input id="update" class="form-control" type="textbox" value=\'' + $(this).html().trim() + '\'/>\ </div>');
title = "Update Tagline";
}
else if(id == '#logo')
{
var dynamicDialog = $('<div>\ <label>\ Logo :\ </label>\ <input type="hidden" value="logo" id="hidden">\ <input id="update" class="form-control" type="textbox" value=\'' + $(this).html().trim() + '\'/>\ </div>');
title = "Update Logo";
}
else if(id == '#footer')
{
var dynamicDialog = $('<div>\ <label>\ Logo :\ </label>\ <input type="hidden" value="footer" id="hidden">\ <input id="update" class="form-control" type="textbox" value=\'' + $(this).html().trim() + '\'/>\ </div>');
title = "Update Footer";
}
dynamicDialog.dialog(
{
title: title,
modal: true,
buttons: {
'Submit': function(e) {
console.log(e);
$.ajax({
type: "POST",
data: { name: $("#update").val() , hidden: $("#hidden").val() , element: "header"}
})
.done(function(msg) {
console.log($("#update").val());
if(id == '#tagline')
$(id).html(msg.name);
else if(id == '#logo')
$(id).html(msg.name);
else if(id == '#footer')
$(id).html(msg.name);
});
$(this).dialog('close');
},
'Cancel': function() {
$(this).dialog('close');
}
}
});
});
}
custom_update_box("#tagline");
custom_update_box("#logo");
custom_update_box("#footer");
});
</script>
$(文档).ready(函数(){
功能自定义更新框(id){
$(id)。单击(函数(){
如果(id='#标记行')
{
变量dynamicDialog=$('\\Tagline:\\\');
title=“更新标语”;
}
否则如果(id='#logo')
{
变量dynamicDialog=$('\\Logo:\\\');
title=“更新徽标”;
}
else if(id='#footer')
{
变量dynamicDialog=$('\\Logo:\\\');
title=“更新页脚”;
}
dynamicDialog.dialog(
{
标题:标题,,
莫代尔:是的,
按钮:{
“提交”:函数(e){
控制台日志(e);
$.ajax({
类型:“POST”,
数据:{name:$(“#update”).val(),隐藏:$(“#hidden”).val(),元素:“header”}
})
.done(函数(msg){
log($(“#update”).val());
如果(id='#标记行')
$(id).html(msg.name);
否则如果(id='#logo')
$(id).html(msg.name);
else if(id='#footer')
$(id).html(msg.name);
});
$(this.dialog('close');
},
“取消”:函数(){
$(this.dialog('close');
}
}
});
});
}
自定义更新框(“标语”);
自定义更新框(“徽标”);
自定义更新框(“页脚”);
});
HTML
<center>
<span id="logo" class="bs-docs-booticon bs-docs-booticon-lg bs-docs-booticon-outline">
<?php echo $logo_decode->wpbst_logo_initial; ?>
</span>
<td>
<p id="tagline" name="blogdescription" class="lead"><?php echo $result_tagline;?></p>
<input id="tagline" type="hidden" name='blogdescription' value=<?php echo '"'.$result_tagline.'"';?> />
</td>
<p class="lead">
<a id="button" class="btn btn-outline-inverse btn-lg" href=""><?php echo $button_decode->wpbst_button_name;?></a>
</p>
</center>
我找到了一种方法,通过在jquery ajax调用函数中添加代码,从#update中删除了数据:
success:function(data) {
$('#update').remove();
}
上面的代码删除了#update中的数据,它回答了我的问题。如果有更好的方法,我也很想知道。到目前为止,:D