Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/469.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript jQueryAjax将数据传递到另一个php文件以更新数据库只允许更新一次(Wordpress)_Javascript_Php_Jquery_Ajax_Wordpress - Fatal编程技术网

Javascript jQueryAjax将数据传递到另一个php文件以更新数据库只允许更新一次(Wordpress)

Javascript 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

我试图使用POST方法将数据重定向到Wordpress中名为functions.php的文件中。它能够将从文本框检测到的数据发送到该文件,并通过使用wp_send_json($_POST)获取返回值。获取返回值后,段落的值可以更改为新值。但它只允许我更新一次,除非页面被刷新或重新加载。我做错了什么或错过了什么?下面是我在这个过程中的代码

functions.php

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