javascript - 阻止结果,通过 AJAX 显示,重新加载浏览器后

标签 javascript php jquery ajax

我有一个通过ajax的插入查询。它工作正常。但是,当我重新加载浏览器时,结果会从 div 部分消失,如果我再次通过 ajax 插入表单,则会显示结果。

我有一个文件 first.php (其中存在表单)、一个 AJAX 代码和一个将执行查询的 firstcall.php

我的first.php(html表单)是:

<form  class="reservation-form mb-0" action="" method="post"  autocomplete="off">
<input name="name1" id="name1" class="form-control"  type="text" placeholder="Enter Name" required aria-required="true">
<input name="age" id="age" class="form-control" required  type="number" placeholder="Enter Age" aria-required="true">
<input type="checkbox" id="checkbox" class="checkbox1" name="namec[]" value="<?php echo $value['id']; ?>" >
<input type="button" class="pull-right btn btn-warning" value="Submit" id="submit">
 </form>

此处应显示数据:

<div class="col-md-5">
 <div class="panel panel-primary" id="showdata">
<!-- Here is the results, but when reload browser then result disapper-->    
</div>      
</div>

AJAX 是:

<script type="text/javascript">
$(document).ready(function(){
 $("#submit").click(function(){
    var name1 = $("#name1").val();
    var age = $("#age").val();

    var chkArray=[];
    $('.checkbox1:checked').each( function() {               
    chkArray.push($(this).val());    
    } );
    var selected;
    selected = chkArray.join(',') ;

    if(selected.length > 1){
    $.ajax( {
    url:'firstcall.php',
    type:'POST',
    data:{name1: name1,age: age,namec: chkArray},
     }).done(function(data){
      $("#showdata").html(data);
         });

        }
            else{
    alert("Please at least one of the checkbox");   
 }
 });    
 });

</script>

firstcall.php 是:

<div class="panel panel-primary" id="showdata">
<?php 
foreach($_POST['namec'] as $selected){
echo $selected;
$_SESSION['name1']=$_POST["name1"];
$_SESSION['age']=$_POST["age"];

echo $name1=$_SESSION['name1'];
echo $age=$_SESSION['age'];

$query=mysql_query("insert into patient_details (p_name,p_age,g_number) values ('$name1','$age','$selected')") or die(mysql_error());
}
?>  

最佳答案

首先修复您的查询以使用 MySQLi,而不是 MySQL,检查 thisPHP manual 另外,不要直接将 $_POST 或 $_GET 变量添加到 mysql 查询中,首先使用 mysqli_real_escape 过滤它们。

$name1 = mysqli_real_escape($link, $_POST["name1"]);
$age = mysqli_real_escape($link, $_POST["age"]);

之后,要在页面重新加载时显示数据,您需要在页面中加载数据,最简单的方法就是在 HTML PHP 标签中添加 echo 命令,然后添加变量。

关于javascript - 阻止结果,通过 AJAX 显示,重新加载浏览器后,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48401840/

相关文章:

javascript - 矩形碰撞

javascript - Auth0 锁定组件未显示在带有容器选项的 React 中

javascript - jQuery:如何在克隆后重置多个下拉菜单?

php - 无法访问 JSON 文件中超出第三个嵌套级别的数据

php - 为什么下载所有邮件后程序无法停止?

javascript - if else 条件在 setInterval 的下一次传递后发生

javascript - 当同一属性有多个值时,如何通过数据属性获取元素?

javascript - Div 根据 <select> 菜单改变

javascript - 如何通过URL防止XSS?

javascript - 使用 jQuery 重新加载 div 内容