【问题标题】:Passing a PHP data string to Ajax将 PHP 数据字符串传递给 Ajax
【发布时间】:2017-01-10 09:17:56
【问题描述】:

我正在尝试将 PHP 变量传递给 Ajax,然后该变量可用于从 MySQL 表中返回记录/数据。

背景 我有一个 PHP 脚本,它返回数据并将其显示在行和列中

if($Count2 < $Limit2) {

    if($Coun2 == 0) {
    echo "<tr>";
    }
    echo "

    <td  class='roomviewred' title='View reported fault' id='room'  >
        <span class='roomlinktext' >
            <div class='content1'>
               $RoomNo
            </div>
        </span>
    </td>
    ";
    } else {
    $Count = 0;
    echo "
    </tr>

    <tr>
    <td  class='roomviewred' title='View reported fault' id='room'>
        <span class='roomlinktext'>
            <div class='content1'>
               $RoomNo
            </div>
        </span>
    </td>
    ";
    }
    $Count++;
}

$RoomNo 包含一个 4 位数字形式的数据字符串。我需要做的是,当单击显示的甚至包含 DIV 的数字时 将数据发送到 jquery/ajax 函数以向数据表发送 MySQL 请求并返回与查询字符串关联的记录。

我的 jquery/ajax 函数

$(document).ready(function() {

var phproom = <?php echo $RoomNo;?>


new jBox('Modal', {
attach: '.roomviewred',
title: 'Reported fault',
theme: 'TooltipBorder',
closeOnClick: 'body',

ajax: {
    url: 'fault_detail.php',
    data: {
       Room: 'phproom'
    },
    reload: 'strict'
    }
});
}

我遇到的问题是当屏幕上的房间号被点击时,我的脚本没有将数据发送到 ajax 函数。当我在 我的浏览器调试器看到以下内容:

http://www.example.com/apps/lhr/iframes/fault_detail.php?Room=phproom

我需要看到的是房间号代替“phproom”:

http://www.example.com/apps/lhr/iframes/fault_detail.php?Room=0101

如果我在 ajax 调用中硬编码房间号,它工作正常,所以我知道我没有正确传递数据。

谁能帮忙。提前感谢您的宝贵时间。

【问题讨论】:

  • 删除 ' 周围的 phproom?
  • 您的 JS 是作为单独的文件加载的,还是在同一页面上加载的?我通常强烈反对在 JS 中混合 PHP echo 语句。您可以做的实际上是将$RoomNo 变量存储为cookie(使用$_COOKIE,然后使用JS 访问它)或作为文档中元素的HTML5 data- 属性,然后读取DOM 上的值准备好了。
  • 尝试在控制台打印phproom 。检查值是否存在

标签: php jquery ajax


【解决方案1】:

你得到phproom是很正常的,在你的javascript中,你将数据中的变量“Room”定义为字符串'phproom'。

您需要删除引号以允许您的程序将 phproom 识别为变量而不是字符串。

祝你好运

【讨论】:

  • 您好,感谢您的回复。我删除了引号,但仍然不起作用。
  • @Nishant Nair 嗨,JS 在同一页上。当我将 phproom 打印到控制台时,我什么也看不到。
  • 尝试重新排序这些行:var phproom = $(document).ready(function() {
  • 嗨,当你说 reorder "$(document).ready(function() {" 你是什么意思?
  • 你好,行 [var phproom = ] 必须是第一个,然后是 [$(document).ready(function() {]
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-06-29
  • 1970-01-01
  • 2011-02-12
  • 1970-01-01
  • 2013-07-28
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多