Php 如何在不重新加载页面的情况下输出更改后的最新mysql$行值?

Php 如何在不重新加载页面的情况下输出更改后的最新mysql$行值?,php,mysql,ajax,Php,Mysql,Ajax,我有一个用户设置页面,用户通过ajax更改自己的名字,并调用一个运行良好的更新脚本。问题是我包含了一个单独的边栏文件,该文件与数据库中的当前名称相呼应,但在重新加载页面之前不会更改,因为它是一个单独的sidebar.php include included sidebar.php within settings.php page <h2 id="profile-name"> <?php if(!$userRow['name']){ echo "Y

我有一个用户设置页面,用户通过ajax更改自己的名字,并调用一个运行良好的更新脚本。问题是我包含了一个单独的边栏文件,该文件与数据库中的当前名称相呼应,但在重新加载页面之前不会更改,因为它是一个单独的sidebar.php include

included sidebar.php within settings.php page

<h2 id="profile-name">
    <?php 
    if(!$userRow['name']){
      echo "You";
    }else{
      echo ucfirst($userRow['name']); 
    }
    ?>
</h2>

//form starts


 <form id="my_form" onsubmit="submitForm(); return false;">

     Name: <input id="name" type="text" class="form-control" placeholder= "<?php echo $userRow['name']; ?>" name="name" value="<?php echo $userRow['name']; ?>"><br>

 <input class="btn btn-default" id="mybtn" type="submit" value="Submit Form"> <span id="status"></span>
     </form>

//ajax works fine and updates database

function _(id){ return document.getElementById(id); }
function submitForm(){

  var formdata = new FormData();
  formdata.append( "name", _("name").value );
  var ajax = new XMLHttpRequest();
  ajax.open( "POST", "update_name.php" );
  ajax.onreadystatechange = function() {
    if(ajax.readyState == 4 && ajax.status == 200) {
      if(ajax.responseText == "success"){

      } else {
       // _("status").innerHTML = ajax.responseText;
       alert("saved");
        _("mybtn").disabled = false;
      }
    }
  }
  ajax.send( formdata );
}
在settings.php页面中包含sidebar.php
//形式开始

Name:好的,传统的“解决方案”是使用AJAX,它也是一个似乎已经尝试过的东西,是一个标签(那么为什么还要把它作为一个问题问呢?)。找出哪个部件“不工作”并修复它。通过使用PHP错误日志、浏览器控制台日志、浏览器网络监视器、DOM检查等工具系统地检查假设来完成这项工作。完成此项研究后,应该可以解决问题或提出有关已识别问题的非常精确的问题。感谢您的回复。我做了研究。当ajax调用完成时,我通过更改侧边栏的内部html临时修复了它。这太棒了!JSON通常通过XHR返回,然后通过对DOM进行分段操作来更新页面内容(例如,跨度的内容可能会被替换),而不是替换所有内容。这通常是通过有一个特定于JSON返回查询的辅助页面来实现的;它不需要担心任何周围的HTML。