【问题标题】:How to get a PHP variable value from another PHP file using jquery?如何使用 jquery 从另一个 PHP 文件中获取 PHP 变量值?
【发布时间】:2014-05-16 16:15:07
【问题描述】:

我想知道如何使用 jquery 从另一个 PHP 文件中获取 PHP 变量值。事实上,我必须归档: test.html 和 moslem.php 。 test.html 文件代码如下:

    <html>
    <head>

    </head>
    <body>
        <script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js" type="text/javascript"></script>
        <script type="text/javascript">
            setTimeout( "test()", 1000);
            function test() {
           $.ajax({
            url: 'moslem.php',
            type: 'POST',
            data: ,
            success: function(data) {
                document.write(data);

            }
            });
            setTimeout ( "test()", 1000);
            }
        </script>
    </body>
</html>

moslem.php 文件的代码如下:

    <?php
  $chaine = "hello!";
?>

我想知道如何使用上面的 jquery 代码获取变量 $chaine 的值,那么我应该在该行输入什么:

data: ,

那个 jquery 代码。

提前致谢。

【问题讨论】:

  • 你的 moslem.php 没有做任何事情。它正在分配一个变量,就是这样。您没有输出,因此不会将任何内容发送回客户端。 echo 'hello' 是您所需要的。
  • @Marc B:我做了你告诉我的事,但不幸的是它没有在屏幕上显示任何东西,好吧,事实上我需要的是访问另一个 PHP 中存在的 PHP 变量值文件..我只需要这样做......提前谢谢。
  • 你需要更清楚一点。您要访问的变量是哪个文件?你想从哪个文件访问它?如果您只是使用 PHP,则不需要使用 AJAX - 您可以使用 include otherfile.php,并且在 otherfile.php 中设置的任何变量现在都可以在您调用它的 PHP 代码中使用。
  • 您没有“访问 php 变量”。 ajax 无法做到这一点。这只是一个http请求。如果您想将某些内容发送回您的客户,则必须将其作为输出。
  • @SharkofMirkwood:事实上,我正在尝试为我正在做的社交网络网站创建一个通知系统。我问了很多人如何做到这一点,他们建议我使用 Ajax 定期执行 PHP 代码(例如每 5 秒)......然后我决定尝试使用 Ajax 访问 PHP 文件中存在的变量,但是正如你所说,它不起作用。好吧,你知道如何做到这一点以及如何创建一个通知系统(你能给我一个简单的例子吗?我们假设我们有这样的表,一个有插入,然后会有一个通知)。

标签: php jquery variables get


【解决方案1】:

你不需要改变你的 JQuery 来实现它;你只需要稍微改变你的PHP。如果您在 PHP 中设置变量,JavaScript 将无法识别。如果你让你的 PHP 代码输出文本而不是把它放在一个变量中,Javascript 会看到这个输出并且可以用它做任何你想做的事情。

只需将$chaine = "hello!"; 更改为echo "hello!";

编辑:我想补充一点,当您开始通过 AJAX 传递大量数据时,您应该考虑使用 JSON 来保持井井有条。例如,如果您有一组数据要传递给 JavaScript,只需在数据上调用 json_encode 并输出,然后您可以在 JS 代码中对其进行解析。

不过,这里的底线是您的前端代码不会“识别”在 PHP 中设置的变量,它只能读取服务器端代码的输出。

【讨论】:

  • 我做了你告诉我的事,但不幸的是它没有在屏幕上显示任何东西,好吧,事实上我需要的是访问另一个 PHP 文件中存在的 PHP 变量值..I不需要再这样做了...在此先感谢。
【解决方案2】:

请试试这个

<script type="text/javascript">     
 function test() {
    $.ajax({
        url: 'moslem.php',
        type: 'POST',
        success: function(data) {
            document.write(data);
        }
    });     
 }
 $(document).ready(function() {
   setTimeout( test, 1000);    
 });
</script>

无需将 data 参数传入 ajax。 并且php文件将与发布前保持一致。

<?php
  $chaine = "hello!"; 
  echo $chaine;
?>

【讨论】:

  • 好吧,你给我的代码有一个问题:) .. 你应该输入这一行: setTimeout(test, 1000);在声明函数 test() 之前,因为我尝试了该代码,但它不再显示表达式“hello”一次 :) ...但是幸运的是我成功地使代码工作:) ...它显示了单词“你好”每一秒都像我想要的那样......经过长时间的斗争,我终于找到了解决方案......这要感谢你,biswajitGhosh先生:)......非常感谢我的朋友的帮助......并且顺便说一句,您可以在下面找到正确的脚本。
  • 真的非常感谢你的帮助,我的朋友 :)
【解决方案3】:

将您的代码放入文档就绪处理程序中 -

<script type="text/javascript">
$(document).ready(function() {
    setTimeout( "test()", 1000);
    function test() {
        $.ajax({
            url: 'moslem.php',
            type: 'POST',
            data: ,
            success: function(data) {
                document.write(data);
            }
        });
     setTimeout ( "test()", 1000);
    }
});
</script>

然后修复你的 PHP -

<?php
  $chaine = "hello!"; 
  echo $chaine;
?>

【讨论】:

  • 我做了你告诉我的事,但不幸的是它没有在屏幕上显示任何东西,好吧,事实上我需要的是访问另一个 PHP 文件中存在的 PHP 变量值..I不需要再这样做了...在此先感谢。
  • 您是在 Web 服务器上执行此操作吗?或者你只是想用你的本地文件系统做到这一点?您的浏览器控制台是否有任何错误?
  • 我正在尝试使用我的本地文件系统(使用本地主机..完全是 Wampserver)来执行此操作,并且我的浏览器控制台中没有任何错误..它没有在屏幕上显示任何内容。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多