Php 如果设置了$#u GET[';submit';],则使用AJAX提交到同一页面并显示内容

Php 如果设置了$#u GET[';submit';],则使用AJAX提交到同一页面并显示内容,php,jquery,ajax,Php,Jquery,Ajax,我正在建立一个应用程序,其中列出了一些文件。页面底部有一个按钮,上面写着“查看旧文件”,我想用它加载旧文件列表。目前,点击按钮时工作正常;它将重新加载页面,并在设置提交后显示较旧的页面。但是,我宁愿在不重新加载的情况下执行此操作 我将如何使用AJAX来实现这一点?以下是我目前掌握的情况: <div class="row"> <div class="col-xs-12"> <form method="GET"> &

我正在建立一个应用程序,其中列出了一些文件。页面底部有一个按钮,上面写着“查看旧文件”,我想用它加载旧文件列表。目前,点击按钮时工作正常;它将重新加载页面,并在设置提交后显示较旧的页面。但是,我宁愿在不重新加载的情况下执行此操作

我将如何使用AJAX来实现这一点?以下是我目前掌握的情况:

<div class="row">
    <div class="col-xs-12">
        <form method="GET">
            <input type="submit" name="submit" value="View Older" id="submit" />
        </form>
    </div>

    <div class="col-xs-12 listholder">
        <ul class="list-group">
            <?php
            if( isset($_GET['submit']) ){ 
                $old_directory = 'oldeshots';
                $scanned_old = array_diff(scandir($old_directory), array('..', '.'));

                foreach ($scanned_old as $key => $value) {
                    echo '<li class="list-group-item">';
                    echo "<a href='$value?old=true'>$value</a>";
                    echo '</li>';
                }
            } ?>
        </ul>                    
    </div>

</div>
我已经使用了jQuery.ajax(),但是我不知道如何设置$\u GET变量。也许我走错了方向?任何帮助都将不胜感激


谢谢

getfiles.php

<?php 
$old_directory = 'oldeshots';
$scanned_old = array_diff(scandir($old_directory), array('..', '.'));
echo json_encode($scanned_old);
$('#submit').on('click', function(e){
    e.preventDefault();
    $.ajax({
        url:'getfiles.php',
        data: {myvar1: 'value', myvar2: 'value2'}, // You don't need this in this case. But this is how you use it.
        dataType: 'json',
        success:function(data) {
            $.each(data, function(i,value){
                $(".list-group").append('<li class="list-group-item"><a href="'+ value +'?old=true">'+value+'</a></li>');
            });
        }
    });
});

您的php文件

<div class="row">
    <div class="col-xs-12">
        <form method="GET">
            <input type="submit" name="submit" value="View Older" id="submit" />
        </form>
    </div>

    <div class="col-xs-12 listholder">
        <ul class="list-group">

        </ul>
    </div>

</div>
}))

getdata.php

 <?php 
   if( isset($_GET['submit']) ){ 

       $old_directory = $_GET['data'];
       $scanned_old = array_diff(scandir($old_directory),     array('..', '.'));
       foreach ($scanned_old as $key => $value) {
           echo '<li class="list-group-item">';
           echo "<a href='$value?old=true'>$value</a>";
           echo '</li>';
       }
   }
?>


使用jQuery.ajax()时,您可以在调用中设置参数“data”,以指定需要随请求发送的任何键/值对。是否向我们显示当前刷新页面的ajax代码?为了让PHP(如果它在同一个文件中)选择
$\u GET['submit']
参数,它将具有刷新页面的功能。(afaik)Ajax可以加载其中的内容,但PHP需要位于外部文件中。因此,如果要使此PHP代码适合Ajax调用,请将所有要发送到PHP scrpt的值添加到
数据:{submit:“yes”},例如
。GET是
jQuery.ajax
调用的默认值,或者您可以将
method:POST、
添加到参数列表中
e.preventDefault();
var data = 'oldeshots';

$.ajax( {
          type : 'GET',
          url:'getdata.php',
          data: data,
          success:function(data) {
                $('ul.list-group').html(data);
          }
});
 <?php 
   if( isset($_GET['submit']) ){ 

       $old_directory = $_GET['data'];
       $scanned_old = array_diff(scandir($old_directory),     array('..', '.'));
       foreach ($scanned_old as $key => $value) {
           echo '<li class="list-group-item">';
           echo "<a href='$value?old=true'>$value</a>";
           echo '</li>';
       }
   }
?>