使用AJAX在同一页面上将Javascript var传递给PHP

时间:2018-06-23 18:02:13

标签: javascript php jquery ajax

我希望这不是重复的,但是我似乎无法根据那些提出类似问题的人找到答案。这是我要做的事的基本知识:

我有一个页面开头是一个空的PHP变量。然后,当用户单击链接时,我想将name属性的值传递给JS变量,然后将该JS变量传递给同一页面,然后使用JS更新PHP变量var值。这是我要执行的操作的一个简单示例:

// PHP
<?php
    // Starts empty, then when posted should update
    $jsVar = $_POST['jsVar'];
    echo $jsVar;
 ?>


<!-- HTML-->
<!-- Link to click with name vlue to pull-->
<a href="#" name="link">Click Me</a>


<!-- JAVASCRIPT -->
<!-- Import jQuery -->
<script src="https://code.jquery.com/jquery-3.3.1.min.js"></script>

<script type="text/javascript">

    // On link click
    $('a').click(function(e){

        // Prevent link default behavior
        e.preventDefault();

        // Store name vale as jsVar
        jsVar = $(this).attr("name");


        $.ajax({
            type: "POST",
            // url: ""   <--------------- From what I read, if you want to post to the same page you just don't inclue the URL?
            data: {jsVar : jsVar}, // <--------- This was also something I found online that supposedly helps pass JS vars to PHP?
            success: function(data)
            {
                alert("success!");
            }
        });
    });

</script>

我是PHP和AJAX的新手,所以我确定我缺少基本的知识,但是截至目前,我不确定下一步要去哪里。非常感谢您的帮助。

编辑 我正在查看这些评论,很多人说我不需要AJAX。我提供的示例与我要执行的操作非常相似,它是根据用户单击侧边栏项目来动态更改包含文件的。我不想为此使用表格,对吗?

1 个答案:

答案 0 :(得分:1)

啊!当我继续看时,我发现jQuery具有.load()函数,正是我想要的。 ang!我能够构建它并使它工作:

// Store clicked page
var currentPage = $(this).attr("name");
// Build filepath
var currentPagePath = "pages/" + currentPage + ".php";

// Find the div I want to change the include for and update it
$("#pageContent").load(currentPagePath);

太简单了。 ang谢谢大家