【发布时间】: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 访问它)或作为文档中元素的HTML5data-属性,然后读取DOM 上的值准备好了。 -
尝试在控制台打印
phproom。检查值是否存在