Javascript 如何检索<;的值/名称;a href..>;当涉及modal时,返回PHP变量

Javascript 如何检索<;的值/名称;a href..>;当涉及modal时,返回PHP变量,javascript,php,html,ajax,Javascript,Php,Html,Ajax,我有一个所有href链接都通用的模式,但我需要传递href的值,这样我就可以设置一个PHP会话变量来进一步使用所单击的href的信息 例如: 如果我单击href Tokyo,我需要将会话变量'epistry'设置为'Tokyo',如果我单击'Kanagawa','epistry'='Kanagawa' 我无法使用GET,因为我正在调用所有href链接都通用的模式,或者可能我不知道有什么有效的方法。 这是密码 HREF链接 <section id="area">

我有一个所有href链接都通用的模式,但我需要传递href的值,这样我就可以设置一个PHP会话变量来进一步使用所单击的href的信息

例如: 如果我单击href Tokyo,我需要将会话变量'epistry'设置为'Tokyo',如果我单击'Kanagawa','epistry'='Kanagawa'

我无法使用GET,因为我正在调用所有href链接都通用的模式,或者可能我不知道有什么有效的方法。 这是密码

HREF链接

<section id="area">
            <div class="container inner">
                <div class="train-line">
                    <div class="row">
                        <h2> Kanto Area </h2>
                        <a href="#modal-work03" data-toggle="modal" name="tokyo" id="1" class="btn btn-large">Tokyo</a>
                        <a href="#modal-work03" data-toggle="modal" name="kanagawa" id="2" class="btn btn-large">Kanagawa</a>
                        <a href="#modal-work03" data-toggle="modal" name="chiba" id="3" class="btn btn-large">Chiba</a>
                        <a href="#modal-work03" data-toggle="modal" name="saitama" id="4" class="btn btn-large">Saitama</a>
                        <a href="#modal-work03" data-toggle="modal" name="ibaraki" id="5" class="btn btn-large">Ibaraki</a>                           
                    </div>
                </div>
            </div>
</section>

关东地区
模态

    <div class="modal fade" id="modal-work03" tabindex="-1" role="dialog" aria-labelledby="modal-work03" aria-hidden="true">

。 .


请建议如何在单击特定href链接时设置PHP会话变量,以便我可以在其他PHP页面上使用该信息。TIA

我看到的最佳选择是使用ajax并单击类
btn
,或者为它们提供一个与
btn
不同的类名,可以
modalbtn
。然后将名称作为数据参数传递,并在那里设置会话。我真的不认为只有php就可以做到这一点。

我看到的最好的选择是使用ajax并点击class
btn
,或者给他们所有人一个不同于
btn
,mayble
modalbtn
的类名。然后将名称作为数据参数传递,并在那里设置会话。我真的看不到一种只使用php就能做到这一点的方法。

使用这段代码

<section id="area">
    <div class="container inner">
        <div class="train-line">
            <div class="row">
                <h2> Kanto Area </h2>
                <a href="#" data-toggle="modal" name="tokyo" id="1" class="btn btn-large">Tokyo</a>
                <a href="#" data-toggle="modal" name="kanagawa" id="2" class="btn btn-large">Kanagawa</a>
                <a href="#" data-toggle="modal" name="chiba" id="3" class="btn btn-large">Chiba</a>
                <a href="#" data-toggle="modal" name="saitama" id="4" class="btn btn-large">Saitama</a>
                <a href="#" data-toggle="modal" name="ibaraki" id="5" class="btn btn-large">Ibaraki</a>
            </div>
        </div>
    </div>
</section>

<script>
    $('.btn-large').click(function(){
        sessionStorage.city = "";
        var city = $(this) .attr('name');
        sessionStorage.city = city;
    });
</script>
希望这有助于使用此代码

<section id="area">
    <div class="container inner">
        <div class="train-line">
            <div class="row">
                <h2> Kanto Area </h2>
                <a href="#" data-toggle="modal" name="tokyo" id="1" class="btn btn-large">Tokyo</a>
                <a href="#" data-toggle="modal" name="kanagawa" id="2" class="btn btn-large">Kanagawa</a>
                <a href="#" data-toggle="modal" name="chiba" id="3" class="btn btn-large">Chiba</a>
                <a href="#" data-toggle="modal" name="saitama" id="4" class="btn btn-large">Saitama</a>
                <a href="#" data-toggle="modal" name="ibaraki" id="5" class="btn btn-large">Ibaraki</a>
            </div>
        </div>
    </div>
</section>

<script>
    $('.btn-large').click(function(){
        sessionStorage.city = "";
        var city = $(this) .attr('name');
        sessionStorage.city = city;
    });
</script>

希望这有助于将onlclick事件添加到您的锚中:

<a href="#" data-toggle="modal" name="tokyo" id="1" class="btn btn-large"  onclick="setSessionVariable('Tokyo');return true;">Tokyo</a>
仅Javascript函数:

function setSessionVariable(varname) {
    $.ajax({url: "setsession.php?vname="+varname, success: function(result){
        alert("ajax function success: " + result);
    }});
    function setSessionVariable(varname) {
        var xhttp = new XMLHttpRequest();
        xhttp.onreadystatechange = function() {
            if (this.readyState == 4 && this.status == 200) {
               document.getElementById("demo").innerHTML = this.responseText;
            }
        };
        xhttp.open("GET", "setsession.php?vname="+varname, true);
        xhttp.send();
    }
添加一个名为“setsession.php”的php文件。 在该文件中,您获得请求变量并设置会话变量:

<?php 
session_start();
$_SESSION['prefecture'] = $_REQUEST['vname'];
echo("success");
exit(0);
?>

当然,你会想做一些验证和其他事情,但这取决于你

更新


将&vname更改为?vname

将onlclick事件添加到您的锚点:

<a href="#" data-toggle="modal" name="tokyo" id="1" class="btn btn-large"  onclick="setSessionVariable('Tokyo');return true;">Tokyo</a>
仅Javascript函数:

function setSessionVariable(varname) {
    $.ajax({url: "setsession.php?vname="+varname, success: function(result){
        alert("ajax function success: " + result);
    }});
    function setSessionVariable(varname) {
        var xhttp = new XMLHttpRequest();
        xhttp.onreadystatechange = function() {
            if (this.readyState == 4 && this.status == 200) {
               document.getElementById("demo").innerHTML = this.responseText;
            }
        };
        xhttp.open("GET", "setsession.php?vname="+varname, true);
        xhttp.send();
    }
添加一个名为“setsession.php”的php文件。 在该文件中,您获得请求变量并设置会话变量:

<?php 
session_start();
$_SESSION['prefecture'] = $_REQUEST['vname'];
echo("success");
exit(0);
?>

当然,你会想做一些验证和其他事情,但这取决于你

更新


将&vname更改为?vname

您用
ajax
标记了它,这正是您所需要的。只需在
中添加一个点击处理程序,并在后台运行一个请求,将所选地区作为GET param发送。我不知道你说的“我不能使用GET”是什么意思,为什么不呢?是的,在研究之后,我想我可以用ajax来完成它,但是我完全不知道如何通过ajax传递变量并设置php会话变量,有没有参考链接?您只需运行一个请求,例如,
index.php?action=setaperience&aperience=Tokyo
,然后用php处理参数。在服务器上,无论用户单击链接还是浏览器运行AJAX请求,都没有任何区别。您用
AJAX
标记了这一点,这正是您所需要的。只需在
中添加一个点击处理程序,并在后台运行一个请求,将所选地区作为GET param发送。我不知道你说的“我不能使用GET”是什么意思,为什么不呢?是的,在研究之后,我想我可以用ajax来完成它,但是我完全不知道如何通过ajax传递变量并设置php会话变量,有没有参考链接?您只需运行一个请求,例如,
index.php?action=setaperience&aperience=Tokyo
,然后用php处理参数。在服务器上,无论用户单击链接还是浏览器运行AJAX请求,都没有任何区别。谢谢!这很有魅力!我只做了1次编辑。。将&vname更改为?vname,它成功了@prats1411如果您需要知道ajax是否失败,您还应该在ajax函数中包含失败场景通知,为了简单起见,我没有在答案中包含它们。谢谢!这很有魅力!我只做了1次编辑。。将&vname更改为?vname,它成功了@prats1411如果您需要知道ajax是否失败,您还应该在ajax函数中包含失败场景通知,为了简单起见,我没有在答案中包含它们。