Jquery AJAX工作,但显示的消息有bug

Jquery AJAX is working but displayed message bugged

本文关键字:消息 bug 显示 AJAX 工作 Jquery      更新时间:2023-09-26

changename.php中我有这个div:

<div id="resultDiv"></div>

在同一个文件中,我有PHP代码:

<?php
include_once ('connect.php');
if(isset($_POST['name']))
{
$postedname = $_POST['name'];
$safename = mysqli_real_escape_string($con, $postedname);
$checkname = "SELECT * from accounts where name='$safename' LIMIT 1";
$query = mysqli_query($con, $checkname);
$row = mysqli_num_rows($query);
if($row) {
  echo 'Name is already taken!';
} else {
  $changename = "UPDATE accounts SET name='$safename' WHERE Name='$_SESSION[username]'";
  $query = mysqli_query($con, $changename);
  if($query)
  {
    echo 'Name is changed!';
    $_SESSION['username'] = $safename;
  }
}
}
?>
这是我的Jquery脚本(在一个单独的文件中):
$(function(){
$("form").submit(function() {
    event.preventDefault();
    var name = $('#inputName').val();

    $.post("changename.php", 
    {
        name: name
    },
    function(data)
    {
             $("#resultDiv").text(data);
        });
});
});

代码工作正常,它成功地改变了我的名字。如果我希望我的名字是'John',它会成功地在数据库中更改它。

问题是,它应该改变div与ID resultDivName is already taken!。相反,它需要整个changename.php HTML代码并将其放入该DIV。因此,而不是1行,我有100+行我的页面在那里。它看起来像这样:

https://gyazo.com/9320a5f15ed67a8ad9298d6172ab6909

你知道为什么这不是我想要的信息吗?

Ajax将从作为url的文件中获取所有数据。如果你想避免这种情况,你有两个选择。

  • changename.php中写入条件,只执行对db部分的更新。
  • changename.php上只保留需要的代码更新到db。