Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/azure/13.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
使用AJAX在同一页面上将Javascript变量传递给PHP_Javascript_Php_Jquery_Ajax - Fatal编程技术网

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

使用AJAX在同一页面上将Javascript变量传递给PHP,javascript,php,jquery,ajax,Javascript,Php,Jquery,Ajax,我有一个以空PHP变量开头的页面。然后,当用户单击链接时,我想将name属性的值传递给JS变量,然后将该JS变量传递给同一页面,然后用JS变量值更新PHP变量。下面是一个简单的例子,说明我正在尝试做什么: // PHP <?php // Starts empty, then when posted should update $jsVar = $_POST['jsVar']; echo $jsVar; ?> <!-- HTML--> <

我有一个以空PHP变量开头的页面。然后,当用户单击链接时,我想将name属性的值传递给JS变量,然后将该JS变量传递给同一页面,然后用JS变量值更新PHP变量。下面是一个简单的例子,说明我正在尝试做什么:

// 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
//点击链接
$('a')。单击(函数(e){
//防止链接默认行为
e、 预防默认值();
//存储名称vale为jsVar
jsVar=$(this.attr(“name”);
$.ajax({
类型:“POST”,

//url:“啊!当我继续寻找时,我发现jQuery有.load()函数,这正是我想要的。该死!我能够构建它并使其工作:

// 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);

非常简单。该死。谢谢大家。

使用AJAX的想法是,您在后台执行请求,而无需离开页面。如果您向同一页面发送AJAX请求,则整个要点都将丢失。因此,基本上,步骤如下:1.用户输入页面。2.用户单击按钮,触发AJAX请求。3.Javascript将等待发送的AJAX请求的响应。4.Javascript将使用从服务器检索的响应更新页面。(或处理无法检索数据的事实…)您不需要更新变量,如果您希望这样做,那么它不是这样工作的。然后使用一个表单来代替。查看示例并阅读本ajax php教程您不需要ajax来执行此操作。进行以下更改:-$(“#链接”)。单击(函数(e){为什么要将请求发送到同一页面?