使用 Ajax 和PHP在同一页面上,一次又一次地附加整页内容

发布于 2025-01-16 14:57:52 字数 1171 浏览 0 评论 0原文

我想在同一个页面上使用ajax和PHP。为此,我删除了 ajax 的 url 参数。现在,当我在文本框中输入内容时,它给出了我想要的结果,但它附加了一个新页面,其中包含 #check-username 内的所有元素。我不知道为什么它要附加新的文本框。请看一下我的代码。

<?php
global $wpdb; 
if(!empty($_POST["username"])) {
  $query = $wpdb->get_var("SELECT COUNT(*) FROM users WHERE username='" . $_POST["username"] . "'");
    ob_clean();
  if($query>0) {
    echo "<span style='color:red'> Sorry User already exists .</span>";
  }else{
    echo "<span style='color:green'> User available for Registration .</span>";
  }
}
?>

<span id="check-username"></span>
<label class="form-label" for="username">Username</label>
<input type="text" name="username" id="username" class="form-control"/>
                
<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
<script>
$(document).ready(function(){
  $('#username').on('input', function() {
    jQuery.ajax({
    data:'username='+$(this).val(),
    type: "POST",
    success:function(data){
        $("#check-username").html(data);
    },
    error:function (){}
    });
  });
});
</script>

I want to use ajax and PHP on the same page. For that I have removed the url paramter of ajax. Now when I am typing in the textbox, it is giving me desired results but it is appending a new page with all the elements inside the #check-username. I don't know why it is appending new textbox. Please take a look at my code.

<?php
global $wpdb; 
if(!empty($_POST["username"])) {
  $query = $wpdb->get_var("SELECT COUNT(*) FROM users WHERE username='" . $_POST["username"] . "'");
    ob_clean();
  if($query>0) {
    echo "<span style='color:red'> Sorry User already exists .</span>";
  }else{
    echo "<span style='color:green'> User available for Registration .</span>";
  }
}
?>

<span id="check-username"></span>
<label class="form-label" for="username">Username</label>
<input type="text" name="username" id="username" class="form-control"/>
                
<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
<script>
$(document).ready(function(){
  $('#username').on('input', function() {
    jQuery.ajax({
    data:'username='+$(this).val(),
    type: "POST",
    success:function(data){
        $("#check-username").html(data);
    },
    error:function (){}
    });
  });
});
</script>

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

毅然前行 2025-01-23 14:57:53

exit; 并使用 isset 而不是 !empty 解决了所有问题。感谢@M。埃里克森

<?php
global $wpdb; 
if(isset($_POST["username"])) {
  $query = $wpdb->get_var("SELECT COUNT(*) FROM users WHERE username='" . $_POST["username"] . "'");
    ob_clean();
  if($query>0) {
    echo "<style>#username{border: 3px solid green;}</style>"; 
  }else{
    echo "<style>#username{border: 3px solid red;}</style>"; 
  }
exit;
}
?>

<span id="check-username"></span>
<label class="form-label" for="username">Username</label>
<input type="text" name="username" id="username" class="form-control"/>
                
<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
<script>
$(document).ready(function(){
  $('#username').on('input', function() {
    jQuery.ajax({
    data:'username='+$(this).val(),
    type: "POST",
    success:function(data){
        $("#check-username").html(data);
    },
    error:function (){}
    });
});});
</script>

exit; and using isset instead of !empty, solved all the problems. Thanks to @M. Eriksson

<?php
global $wpdb; 
if(isset($_POST["username"])) {
  $query = $wpdb->get_var("SELECT COUNT(*) FROM users WHERE username='" . $_POST["username"] . "'");
    ob_clean();
  if($query>0) {
    echo "<style>#username{border: 3px solid green;}</style>"; 
  }else{
    echo "<style>#username{border: 3px solid red;}</style>"; 
  }
exit;
}
?>

<span id="check-username"></span>
<label class="form-label" for="username">Username</label>
<input type="text" name="username" id="username" class="form-control"/>
                
<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
<script>
$(document).ready(function(){
  $('#username').on('input', function() {
    jQuery.ajax({
    data:'username='+$(this).val(),
    type: "POST",
    success:function(data){
        $("#check-username").html(data);
    },
    error:function (){}
    });
});});
</script>

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文