【问题标题】:Get variable from PHP file using JQuery/AJAX使用 JQuery/AJAX 从 PHP 文件中获取变量
【发布时间】:2012-04-26 21:06:48
【问题描述】:

这是我在这里的第一篇文章,我希望有人能够帮助我。 在过去的一周里,我一直在做我的一个项目。显然,我坚持最后一部分。
所以基本上,我有一个 AJAX 聊天,当我提交一行时,我发送(使用 Post 方法)要分析的整行(到一个名为 analysis.php 的文件)。
正在分析聊天行,并通过对 MySql 数据库进行查询来找到我需要的变量。
我现在需要的就是使用 JQuery-AJAX 获取这个变量并将其放在我的 html 文件中的一个 div 上(这样它就可以显示在聊天的左右两边)。

这是我的文件:
analysis.php

<?php
$advert = $row[adverts];
?>

ajax-chat.html

<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>AJAX Chat</title>

<link rel="stylesheet" type="text/css" href="js/jScrollPane/jScrollPane.css" />
<link rel="stylesheet" type="text/css" href="css/page.css" />
<link rel="stylesheet" type="text/css" href="css/chat.css" />

</head>

<body>

<div id="chatContainer">

    <div id="chatTopBar" class="rounded"></div>
    <div id="chatLineHolder"></div>

    <div id="chatUsers" class="rounded"></div>
    <div id="chatBottomBar" class="rounded">
        <div class="tip"></div>

        <form id="loginForm" method="post" action="">
            <input id="name" name="name" class="rounded" maxlength="16" />
            <input id="email" name="email" class="rounded" />
            <input type="submit" class="blueButton" value="Login" />
        </form>

        <form id="submitForm" method="post" action="">
            <input id="chatText" name="chatText" class="rounded" maxlength="255" />
            <input type="submit" class="blueButton" value="Submit" />
        </form>

    </div>

</div>

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
<script src="js/jScrollPane/jquery.mousewheel.js"></script>
<script src="js/jScrollPane/jScrollPane.min.js"></script>
<script src="js/script.js"></script>
</body>
</html>

所以,我基本上是在尝试从 analysis.php 文件中获取 $advert(在整个分析完成后),并通过使用 JQuery/AJAX 最终将其传递给 ajax-chat.html 文件。 非常感谢任何帮助。我已经用谷歌搜索了所有内容,但没有找到可以帮助我的东西。 提前致谢。

【问题讨论】:

  • 您不能在您的 HTML 文件中添加任何内容:当 AJAX 运行时,您的 HTML 文件不存在,它已被发送到浏览器,浏览器将创建自己的内部数据结构。您可以做的是在该浏览器中运行一些将更新结构的 Javscript。我不会说 JQuery,所以我无法具体建议您。
  • 感谢您的回答...只是为了更清楚地说明:假设此聊天类似于情绪检测器。如果分析该行并发现用户的心情很好,那么 $advert 将具有值“好”,它应该以某种方式检索并放入 html 中的 div 并显示给用户。如果这样更清楚。
  • 是的,我理解你想要做的事情:这就是 Ajax 被发明来解决的问题。我只是想警告你一个我认为你可能正在犯的概念错误(但我可能是错的),你以某种方式对那个 HTML 文件做了一些事情。你不能:你所能做的就是在浏览器中修改从那个 HTML 创建的 DOM。

标签: php jquery html ajax


【解决方案1】:

如果我理解正确,您需要使用 JSON。这是一个示例。

在你的 PHP 中写:

<?php
// filename: myAjaxFile.php
// some PHP
    $advert = array(
        'ajax' => 'Hello world!',
        'advert' => $row['adverts'],
     );
    echo json_encode($advert);
?>

那么,如果你使用的是 jQuery,只需写:

    $.ajax({
        url : 'myAjaxFile.php',
        type : 'POST',
        data : data,
        dataType : 'json',
        success : function (result) {
           alert(result['ajax']); // "Hello world!" alerted
           console.log(result['advert']) // The value of your php $row['adverts'] will be displayed
        },
        error : function () {
           alert("error");
        }
    })

仅此而已。这是 JSON - 它用于在服务器和用户之间发送变量、数组、对象等。更多信息在这里:http://www.json.org/。 :)

【讨论】:

  • 注意:json_encode($var) 需要 PHP 5.2+ 或带有 PECL 1.2+ 扩展的 PHP 4.3+。 @erik1001 链接 OP 的文档也是一个好主意 php.net/manual/en/function.json-encode.php
  • 如果我们使用 $('#the_div_I_want').html(result); 而不是 alert(result['ajax']); ,这个变量会显示在我这个特定的html div中吗?
  • 当然会。您甚至可以从服务器端发送 HTML 并将其显示在您想要的位置。
  • 我已将您的 Jquery 部分简化为 $.ajax({ url : 'php/analysis.php', success : function (result) { alert("You are getting a reply!") ; }, error : function () { alert("error"); } }) 以查看响应是什么。事实是我得到了回应,但这是一大堆我不需要的东西。即使我对 php 文件做了 json_encode($the_variable_I_needed)。我怎样才能专门检索我需要的变量?再次感谢。! :
  • 另一个问题是我不想使用 AJAX 传递变量,只是从已经分析的文本中接收这些变量(在 php 文件中),其中会有我需要的变量检索。
猜你喜欢
  • 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
相关资源
最近更新 更多