Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/search/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何在不刷新页面的情况下更改浏览器地址栏的URL,使其保持在同一页面上?_Php_Html_Ajax - Fatal编程技术网

Php 如何在不刷新页面的情况下更改浏览器地址栏的URL,使其保持在同一页面上?

Php 如何在不刷新页面的情况下更改浏览器地址栏的URL,使其保持在同一页面上?,php,html,ajax,Php,Html,Ajax,我想不间断地播放背景音乐。URL的更改(例如index.php?step1)会刷新我的index.php页面,即使我在index.php上翻页。请帮助我如何防止我的索引页刷新或不间断地播放音乐 在index.php中 <audio controls preload="auto" > <source src="bak_music/back_music.mp3" ></source> </audio> <a href="?step1"&g

我想不间断地播放背景音乐。URL的更改(例如index.php?step1)会刷新我的index.php页面,即使我在index.php上翻页。请帮助我如何防止我的索引页刷新或不间断地播放音乐

index.php中

<audio  controls preload="auto" >
<source src="bak_music/back_music.mp3"  ></source>
</audio>

 <a href="?step1">step 1</a>

    <?php 
    if($_SERVER['QUERY_STRING']=='step1')
    {
    step1_function();
    }
    ?>


刷新my index.php

如果您想按照我的想法做,可以使用Javascript和AJAX调用来分离php代码并在需要时返回数据

<audio  controls preload="auto" >
<source src="bak_music/back_music.mp3"  ></source>
</audio>

 <a href="?step1">step 1</a>

    <?php 
    if($_SERVER['QUERY_STRING']=='step1')
    {
    step1_function();
    }
    ?>
像这样的

index.php

<script src="https://code.jquery.com/jquery-2.2.0.js"></script>

<a href="#" class="step-button" name="step1">Step 1</a>
<a href="#" class="step-button" name="step2">Step 2</a>

<script>

$(document).ready( function(){

    $('.step-button').click(function( e ){
        e.preventDefault();

        var step = $(this).attr('name');

        var postData = {
            step: step,
            action: 'stepFuntion',
        }

        $.ajax({
            type: "POST",
            url: 'ajax.php',
            data: step,
            success: function( data )
            {
                // Data to return
                console.log(data);
            }
        })
    })

})

</script>

$(文档).ready(函数(){
$('.step按钮')。单击(函数(e){
e、 预防默认值();
var step=$(this.attr('name');
var postData={
步骤:步骤,
行动:“stepFuntion”,
}
$.ajax({
类型:“POST”,
url:'ajax.php',
数据:步骤,
成功:功能(数据)
{
//要返回的数据
控制台日志(数据);
}
})
})
})
ajax.php

<?php

if ( isset($_REQUEST['stepFuntion']) )
{

    $function = call_user_func( $_REQUEST['step'].'_function()' );
    $return = json_encode( $function );

    die($return);
}

?>


我想这会让你得到你想要的结果。

没有办法精确地完成你所指示的。由于您使用php呈现内容,因此需要刷新整个页面,或者设置一个新的端点,通过javascript通过ajax进行请求,以提供所需的任何内容。也就是说,你的问题相当广泛,你可能想读一读