Javascript 将会话变量从PHP传递到JS
我目前正在使用一些jQuery来获取td单元中的内容。然后,我通过一个变量将该内容传递到另一个文件。我正试图找出获取会话变量的最佳方法,但似乎遇到了一些问题。下面是一些简短的伪代码以及我的JS/jQuery 编辑/更新 下面的帖子也更正了。这里是my ManageUsers.inc.phpJavascript 将会话变量从PHP传递到JS,javascript,php,jquery,Javascript,Php,Jquery,我目前正在使用一些jQuery来获取td单元中的内容。然后,我通过一个变量将该内容传递到另一个文件。我正试图找出获取会话变量的最佳方法,但似乎遇到了一些问题。下面是一些简短的伪代码以及我的JS/jQuery 编辑/更新 下面的帖子也更正了。这里是my ManageUsers.inc.php <?php // Load 404 page if file is accessed directly if(!defined('INCLUDE_CHECK')) die(header("HTTP/1.
<?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';
?>
变量id=“”;
这里有两种选择
$.get
调用中返回的数据的一部分发送回
echo$\u session['bus\u id']代码>
function setup_binds(bus_id) {
$(".user").on("click",function(){
alert("bus_id is: " + bus_id);
});
}
换句话说,您需要仔细考虑如何设计包含多个文件的页面,就像这样。从PHP到JS,我喜欢做的是使用JSON处理几乎所有的事情,然后在控制台中查看响应 这显然是不安全的,我还没有测试过这段代码,但想法是: PHP
我觉得这只是打开了数据的整体画面,您最终进行的回调更少,因为您可以通过传递对象进行更多的通信。您还可以处理消息,而不仅仅是错误。我很容易做到这一点。为了简化我的问题,我只做了一个隐藏的div,其中包含session变量。然后设置bus_id=(element.value),其中element是隐藏的div id的名称 解决方案
<input type = "hidden" id="bus" name="bus" value="<?php echo $_SESSION['bus_id']; ?>">
你有没有试着坚持在JavaScript代码的中间?(随机猜测。)@Ariane我尝试先这么做,然后用警报测试,但警报没有弹出。我不确定是否因此存在另一个问题。您现在如何将会话传递回JS?通过get?另外,我希望您的
…
在中。
否则无效。@putvande td在表中。如上所述,我只是草草记下了简单的伪代码。我实际上传递了两个变量。第一个是td内部的内容。第二个是会话变量。我正在试图找到一种获取会话变量的方法,以便将其发送到Update_User.inc。php@CBC_NS您是否尝试过在页面中的任意位置,JS之外放置一个如上所述的echo
?如果没有显示预期的值,那么一开始就无法访问它,您需要重新编写PHP。如果它这样做了,并且它在Javascript中插入了PHP,这造成了一个问题,那么您可以尝试在一个隐藏的输入中简单地echo
您的值,然后使用JS获取它的值。是的,它基本上避开了这个问题,但如果你不明白为什么PHP和JS之间的数据传输不起作用,而且这对你深入研究还不够重要,那么问题总是存在的。本质上,这应该是答案。正如我在上面回应Ariane时提到的,它甚至没有触发警报。想法?试着用单引号来表示字符串,这是我认为的方式,它对我很有效。单引号给出语法错误,双引号回荡/提醒整个行。它是否使用php回荡结果…?(不使用js,它是否有效…?)因此,根据您的建议,发生了以下情况。变量总线id=“”;//语法错误var bus_id=“”;//当警报弹出时得到结果。正如我在下面提到的,当我按您和Sobin的方式键入/或粘贴那行代码时,是否给了我语法错误?我想要的会话变量在php页面上是活动的。是的,我在外部和内部都有单引号。我修复了它,应该可以正常工作。当我发出警报(myvar)时,结果是。一旦我把它发送回我的php文件,它会改变吗?啊,好吧,这是在一个叫做myfile.html
的文件中发生的,对吗?您需要将其重命名为myfile.php
@CBC\n是的,问题是php从未解析该文件。这是一个.js文件,不是.php文件。这就是我说的“这是在一个名为myfile.html的文件中发生的,对吗?你需要将它重命名为myfile.php”
。在PHP文件中创建的脚本块中定义变量,然后将其作为变量传递给在外部.js文件中调用的函数。
<div>
<?php
print_r($_SESSION);
?>
</div>
<script>
var myvar = "<?php echo $_SESSION['bus_id']; ?>";
</script>
<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>
function setup_binds(bus_id) {
$(".user").on("click",function(){
alert("bus_id is: " + bus_id);
});
}
<?php
$id = $_REQUEST['id']; // the id sent
...
echo json_encode($_SESSION);
?>
... on('click','delegate', function() { ...
$.ajax(url, { // $.getJSON works well too
dataType:'json',
data:{id:someid},
success:function(ses){
// you should see the whole session as a tree
console.debug(ses);
// I also like to see big trees in the "DOM" in firebug
window.SESSION = ses;
}});
})
<input type = "hidden" id="bus" name="bus" value="<?php echo $_SESSION['bus_id']; ?>">
bus_id = (bus.value);