PHP 会话变量在第一页的值在第二个 GET 请求后未更新为第二页会话变量的值
PHP session variable's value in 1st page not updating to value of session variable in 2nd page after 2nd GET request
我在PHP中使用会话变量。我正在从 modifyDetails.php 向另一个名为 getDetails.php 的 php 文件发出 ajax 请求,使用:
xmlhttp.open("GET", "getDetails.php?val=" + str, true);
我正在尝试根据下拉列表中的选择更改表单字段的值。我第一次选择时做对了但是当我现在进行不同的选择时,值仍然相同。我已经在getDetails中检查了会话变量$_SESSION['Member_details']的值.php它的值非常好,但是会话变量在修改详细信息.php 不会更新其值。
"修改详细信息.php"
<?php
session_start();
$fid = $_SESSION['fid_value'];
$get_Member_details = $_SESSION['Member_details'];
?>
<!DOCTYPE html>
<html>
<head>
<meta charset="ISO-8859-1">
<title>Modify Details</title>
<script src="/prj/jquery.min.js"></script>
<script>
function fillData(str)
{
$(document).ready(function()
{
if (window.XMLHttpRequest){
xmlhttp=new XMLHttpRequest();
}
else{
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange = function() {
if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
document.getElementById("kk").innerHTML = xmlhttp.responseText;
}
};
xmlhttp.open("GET", "getDetails.php?val=" + str, true);
xmlhttp.send();
//window.alert(str);
var jage= "<?php echo $get_Member_details['age'];?> ";
var jsex= "<?php echo $get_Member_details['sex'];?> ";
var jdob= "<?php echo $get_Member_details['dob'];?> ";
//alert(jdob);
var jrelation = "<?php echo $get_Member_details['Relationship'];?> ";
var jcontact = "<?php echo $get_Member_details['contact'];?> ";
var jaddress = "<?php echo $get_Member_details['address'];?> ";
var jpin = "<?php echo $get_Member_details['pin'];?> ";
document.getElementById("Age").value = jage;
//document.getElementById("Sex").value = jsex;
document.getElementById("Dob").value = jdob;
document.getElementById("Rel").value = jrelation;
document.getElementById("Contact").value = jcontact;
document.getElementById("Address").value = jaddress;
document.getElementById("Pin").value = jpin;
});
}
</script>
<style>
body{
background-color:lightgrey;
}
#button {
background-color: green;
border: none;
color: white;
padding: 8px 14px;
text-align: center;
text-decoration: none;
font-size: 17px;
margin: 2px 4px;
cursor: pointer;
}
table { padding:2px 6px;}
</style>
</head>
<body>
<h1>Customer Form </h1>
<h3>Please fill in the details below:</h3>
<form action="modified.php" method="post">
<table style="width:24%;">
<tr><td>Family ID:</td><td><input type="text" name="fid" value="<?php echo "$fid";?>" readonly /></td></tr><tr></tr>
<tr><td>Name:</td>
<td>
<?php
mysql_connect('localhost', 'root', '');
mysql_select_db('project');
$sql_query = "SELECT name FROM family WHERE fid=$fid";
$records = mysql_query($sql_query);
echo"<select name='member_name' onchange='fillData(this.value)'>";
while( $family_member = mysql_fetch_array($records) )
{
echo "<option value='".$family_member['name']."' >".$family_member['name']."</option>";
}
echo "</select></td></tr>";
?>
<div id="kk">
</div>
<tr><td>Age:</td><td><input id="Age" type="text" name="age" required /></td></tr><tr></tr>
<tr><td>Sex:</td><td><input id="Sex" type="radio" name="sex" value="Male" required />Male
<input id="Sex" type="radio" name="sex" value="Female" required/>Female</td></tr><tr></tr>
<tr><td>Date of Birth:</td><td><input id="Dob" type="text" name="dob" required /></td></tr><tr></tr>
<tr><td>Relationship:</td><td><input id="Rel" type="text" name="relation" list="relations" required>
<datalist id="relations">
<option value="Son">Son</option>
<option value="Daughter">Daughter</option>
<option value="Father">Father</option>
<option value="Mother">Mother</option>
<option value="GrandMother">GrandMother</option>
<option value="GrandFather">GrandFather</option></td></tr><tr></tr>
</datalist></td></tr>
<tr><td>Contact Number:</td><td><input id="Contact" type="text" name="contact" required /></td></tr><tr></tr>
<tr><td>Address:</td><td><input id="Address" type="text" name="address" required /></td></tr><tr></tr>
<tr><td>Pincode:</td><td><input id="Pin" type="text" name="pin" required /></td></tr><tr></tr>
</table> <br>
<input id="button" type="submit" value="Submit"/>
</form>
<br><br><br>
<a href="search.html"> <h4>Back to Search Page</h4></a>
</body>
"获取详细信息.php"
<?php
session_start();
$fid =$_SESSION['fid_value'];
?>
<?php
$name=$_GET['val'];
echo $name;
mysql_connect('localhost', 'root', '');
mysql_select_db('project');
$sql_query = "SELECT * FROM family WHERE fid=$fid AND name='$name'";
$records = mysql_query($sql_query);
$_SESSION['Member_details'] = mysql_fetch_array($records);
$hold = $_SESSION['Member_details'];
//echo $hold['dob'];
//echo $hold['contact'];
?>
Ajax 调用发生在页面加载后,当会话处于状态"A"时,您的 JS 会被渲染。
进行 Ajax 调用后,它处于状态"B"中,但此时已经调用了 Session,并且已经呈现了初始视图。
因此,要解决此问题,您应该使用 JSON 传递通过 Ajax 存储库更改的变量。
相关文章:
- 将会话变量从一个页面传递到另一个页面
- 如何使用 php 会话变量作为 Angular Js 数据
- 通过Javascript更改PHP会话变量
- 正在Javascript响应中设置会话变量
- 将会话变量与javascript变量进行比较
- PHP会话ID变量与AJAX一起返回
- 我在会话变量中传递了一个数组.我需要将关键笔划传递给它以返回值
- 在aspx页面c#之间传递/引用/发送变量/会话状态
- 从javascript变量获取php会话
- 无法获取php会话变量以在javascript中设置var
- 使用Jquery在页面加载上测试php会话变量
- 移动浏览器没有;t支持会话变量
- 如何在AJAX会话之外更新变量?(Backbone JS/CoffeeScript)
- 如果JS会话变量为null,如何避免500内部服务器错误
- 带有 Meteor 的通用会话变量键模板助手
- Javascript 会话存储变量未正确保存
- 使用 Javascript 或 jQuery 检索会话变量的简单快捷的方法
- ExpressJS中POST方法上的变量会话的范围
- 在重定向之前将php函数分配给同一页面中的变量会话的更好方法
- 为什么我不能传递变量(会话)上重载同一页在php