Javascript AJAX:单击按钮后显示更新的变量

Javascript AJAX:单击按钮后显示更新的变量,javascript,php,ajax,Javascript,Php,Ajax,我刚刚开始使用AJAX,所以如果问题很简单,我很抱歉 我使用一个简单的AJAX脚本来更新会话变量,具体取决于您单击的按钮,但我无法让它在单击按钮时用新值更新标题。目前,我有一个按钮来重新加载页面,但我想删除它,并在每个按钮点击时更新标题 index.php 函数设置会话(值){ xmlhttp=新的XMLHttpRequest(); open(“GET”、“setSession.php?variable=rider&value=“+value,true”); xmlhttp.send(); }

我刚刚开始使用AJAX,所以如果问题很简单,我很抱歉

我使用一个简单的AJAX脚本来更新会话变量,具体取决于您单击的按钮,但我无法让它在单击按钮时用新值更新标题。目前,我有一个按钮来重新加载页面,但我想删除它,并在每个按钮点击时更新标题

index.php

函数设置会话(值){
xmlhttp=新的XMLHttpRequest();
open(“GET”、“setSession.php?variable=rider&value=“+value,true”);
xmlhttp.send();
}

目前index.php只加载了一次。因此,
$\u会话['rider']
已输出一次,而且仅输出一次,因此不会更改。您需要使用javascript从正在执行的xhr读取响应(同时在setSession.php文件中输出
$\u SESSION['rider']


我不确定您的应用程序试图做什么,但这完全可以在没有任何php的情况下实现。

触发ajax调用后,您必须修改已经显示的h1

在h1中添加一个类,并在ajax完成后使用jQuery或JavaScript修改该值

if(xhr.status===200){
     $('.header').text(//rider text);
}
这将在ajax之后设置值,如果用户刷新页面,它将自动从会话加载


但正如其他答案所表明的,这在没有php本身的情况下很容易实现,但我将把应用程序技术的决定权留给您。

@Chris和@tej解释了这个过程。这就是您如何做到的

setSession.php

<?php
session_start();
if(isset($_REQUEST['variable']) && isset($_REQUEST['value'])){
     $variable = $_REQUEST['variable'];
     $value = $_REQUEST['value'];
     $_SESSION[$variable] = $value;
     echo $_SESSION[$variable];
}
?>
echo "<h1 id='selection'>You selected: " . $_SESSION['rider'] . "</h1>";    
function setSession( value) {
    xmlhttp = new XMLHttpRequest();
    xmlhttp.open("GET", "setSession.php?variable=rider&value=" + value,     true);
    xmlhttp.onreadystatechange = function() {
        if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
             document.getElementById("selection").innerHTML = "You selected ".xmlhttp.responseText;
        }
    }
    xmlhttp.send();
}

index.php

<?php
session_start();
if(isset($_REQUEST['variable']) && isset($_REQUEST['value'])){
     $variable = $_REQUEST['variable'];
     $value = $_REQUEST['value'];
     $_SESSION[$variable] = $value;
     echo $_SESSION[$variable];
}
?>
echo "<h1 id='selection'>You selected: " . $_SESSION['rider'] . "</h1>";    
function setSession( value) {
    xmlhttp = new XMLHttpRequest();
    xmlhttp.open("GET", "setSession.php?variable=rider&value=" + value,     true);
    xmlhttp.onreadystatechange = function() {
        if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
             document.getElementById("selection").innerHTML = "You selected ".xmlhttp.responseText;
        }
    }
    xmlhttp.send();
}
echo“您选择:”.$\u会话['rider']”;
函数设置会话(值){
xmlhttp=新的XMLHttpRequest();
open(“GET”、“setSession.php?variable=rider&value=“+value,true”);
xmlhttp.onreadystatechange=函数(){
if(xmlhttp.readyState==4&&xmlhttp.status==200){
document.getElementById(“selection”).innerHTML=“您选择的”。xmlhttp.responseText;
}
}
xmlhttp.send();
}

为了让脚本首先工作,我尽可能地简化了脚本。然后,它将成为php站点的一部分,其中按钮值将来自php变量。但首先,我需要它以这种简单的形式工作。我完全赞成让事情从一开始就变得简单。实际上,我会使用jquerys.ajax方法,比使用XMLHttpRequest更简洁t目前您还没有足够的功能使其正常工作。这将有助于获取您的响应数据。