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

时间:2018-01-23 12:31:59

标签: javascript php jquery ajax

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

我有一个文件 first.php (其中包含表单),一个AJAX代码和一个 firstcall.php ,其中将执行查询。

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

$category = Category::find(3);

此处应显示数据:

<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>

AJAX是:

<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>

firstcall.php 是:

<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>

2 个答案:

答案 0 :(得分:0)

如果我正确理解您的问题,您希望Ajax结果也显示在页面加载上吗?

现在你只需要点击一下就执行JS(所以在页面加载/重启你只会看到html),你可能想在页面加载之后执行它(所以执行没有.click的脚本)

您可以创建一次函数,并在页面准备好并单击时调用它。

答案 1 :(得分:0)

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

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

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