繁体   English   中英

从 PHP 调用 Ajax

[英]Call Ajax from PHP

我想在 php 文件中进行 ajax 调用。 (最终目标是获得一个localStorage)。 如果我很好理解,我将从 php.ini 中的开始会话开始。

<?php
session_start();
?>

然后,ajax 调用另一个 php 文件。

<script>
    src="jquery.js";
    var variableToSend = 'foo';
    $.ajax({
        type: "post",
        async : false,
        url: "/login_getStorage.php",
        data: { variable: variableToSend }
    });
</script>

在这个文件 php login_getStorage.php 我只有

<?php
$_SESSION['toto'] = "titi";

如果我很好理解,变量 $_SESSION['toto'] 应该用“titi”初始化

所以在主文件中 :( 所以在脚本之后)

<?php
echo($_SESSION['toto'] );

我以为它会显示“titi”。 但我有错误 PHP 通知:未定义索引:toto

好像我的ajax调用没有完成

我们如何做这个ajax调用?

此致。

在这个文件 php login_getStorage.php 我只有

<?php $_SESSION['toto'] = "titi";

您需要先调用session_start()然后才能在任何 PHP 文件中使用$_SESSION['toto']

您的 Ajax 调用可能工作得很好,但由于您正在编辑不存在的会话内容,因此它没有达到您想要的效果。

PHP在解析任何javascript之前在服务器上运行。

有几个问题:

  • 您是否包含 jquery 库?
  • 是否有任何JS错误?

尝试将success添加到您的ajax

success: function(data){ 
    // when success
}

您的PHP在您的ajax调用之前运行,因此页面加载时不存在该值。
您还可以返回一个值,而不是在PHP页面上分配一个值。

<script>
    src="jquery.js";
    var variableToSend = 'foo';
    $.ajax({
        type: "post",
        async : false,
        url: "/login_getStorage.php",
        data: { variable: variableToSend },
        success: function(data){ 
           // when success display data 
           alert(data); // alert the session value
        }
    });
</script>

然后你的login_getStorage.php

<?php
session_start();
$_SESSION['toto'] = "titi";
echo $_SESSION['toto'];

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM