我目前正在使用一些 jQuery 来获取 td 单元格中的内容。然后我通过变量将该内容传递到另一个文件。我也在试图找出获取 session 变量的最佳方法,但似乎已经陷入困境。下面是一些简短的伪代码以及我的 JS/jQuery。
编辑/更新
也对下面的帖子进行更正。这是我的 ManageUsers.inc.php
<?php
// Load 404 page if file is accessed directly
if(!defined('INCLUDE_CHECK')) die(header("HTTP/1.0 404 Not Found"));
// Load 404 page if the page is accessed by Users or QA Agents
if($_SESSION['role_id']<2 or $_SESSION['role_id']==5) die(header("HTTP/1.0 404 Not Found"));
?>
<script src="/resources/js/getBusinessUnit.js"></script>
<script type="text/javascript" src="../../resources/js/User.js"></script>
<div id="main">
<div class="container">
<h1>Manage Users</h1>
<h2>This page allows you to add and update the authorized Users</h2>
</div>
<div class="container">
<div style="margin-left:auto; margin-right:auto; text-align:center;">
<span id="user">
<form name="insertUser" action="<?php echo htmlspecialchars($_SERVER['PHP']);?>" method="post">
<div style="margin-top:0px; margin-left:auto; margin-right:auto; text-align:center;">
<fieldset>
<legend class="legend1"><h2>  User Info  </h2></legend>
<div style="padding-top: 5px;">
<input type="text" name="uname" class="textinput1" id="uname" value="" style="width:200px;" maxlength="200" tabindex="2" placeholder="User Name" /><br />
<input type="text" name="fname" class="textinput1" id="fname" value="" style="width:200px;" maxlength="100" tabindex="3" placeholder="First Name" /><br />
<input type="text" name="lname" class="textinput1" id="lname" value="" style="width:200px;" maxlength="100" tabindex="4" placeholder="Last Name" /><br />
<div style="float:left"><input type="checkbox" name="status" id="status" value="YES"/>Enabled </div>
</div>
</fieldset>
<fieldset>
<legend class="legend1"><h2>  Company Info  </h2></legend>
<div style="padding-top: 5px;">
<div class="input-field">
<?php require $adm_pg.'selectRole'.$ext; ?>
</select>
</div>
<div class="input-field">
<?php require $adm_pg.'selectBusinessUnit'.$ext; ?>
</div>
<span id="DeptContainer"></span>
</div>
</fieldset>
</div>
<?php require $adm_pg.'adminButtons'.$ext; ?>
</form>
</span>
</div>
</div>
<div class="container">
<?php require $adm_pg.'displayUsers.inc.php'; ?>
</div>
</div>
<?php
require 'db/ManageUsers.db.php';
require 'db/logAction.db.php';
?>
这是我的 User.js 文件
$(window).on('load', function() {
$('.user').on('click', function() {
var id = $(this).html();
$.get("/includes/adminPages/Update_User.inc.php?selection_id=" + id, function(data) {
$('#user').html(data);
});
});
});
最佳答案
这里有两个选项。
PHP 文件可以将 session 变量作为
<$.get
调用中返回的data
的一部分发回。如果 session 值在页面执行期间没有改变,那么您可以简单地按照其他人的建议进行操作,方法是
echo $_SESSION['bus_id'];
如果您在让#2 工作时遇到困难,请执行以下操作。将您的 HTML 文件缩减为以下内容(我将省略 header 内容,我认为您的文件中的 header 内容是正确的):
<div>
<?php
print_r($_SESSION);
?>
</div>
这将为您提供所有 session 值。这样你就可以看到你想要的值是否存在。如果是,那么这将工作正常:
<script>
var myvar = "<?php echo $_SESSION['bus_id']; ?>";
</script>
对于这样的问题,最重要的是简化它们。从页面中删除不需要的所有内容,并以小步骤添加到代码中,以便您可以确定问题发生的位置。 看来您遇到的问题实际上并不是您认为遇到的问题:)
编辑:
根据更新的信息,问题在于您希望在 PHP 从未解析的文件中运行 PHP 代码 (User.js
)。如果您需要访问外部 .js 文件中定义的 javascript 函数中的 PHP 变量,则必须将该变量拉入主 PHP 文件中的 javascript,然后将其作为参数发送到您正在执行的任何代码在外部 .js 文件中,或全局声明它并确保它对外部代码可见。例如,使用参数解决方案:
index.php
<script src="http://code.jquery.com/jquery-1.9.1.js"></script>
<script src="myfunctions.js"></script>
<script>
$(document).ready(function(){
var bus_id = "<?php echo $_SESSION['bus_id']; ?>";
setup_binds(bus_id);
});
</script>
myfunctions.js
function setup_binds(bus_id) {
$(".user").on("click",function(){
alert("bus_id is: " + bus_id);
});
}
换句话说,您需要仔细考虑如何设计包含这样的多个文件的页面。
关于javascript - 将 session 变量从 PHP 传递到 JS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18318819/