gpt4 book ai didi

javascript - 在第二次 GET 请求后,第一页中的 PHP session 变量值未更新为第二页中的 session 变量值

转载 作者:行者123 更新时间:2023-12-03 07:32:05 25 4
gpt4 key购买 nike

我在 PHP 中使用 session 变量。我正在使用以下命令从 modifyDetails.php 向另一个名为 getDetails.php 的 php 文件发出 ajax 请求:

xmlhttp.open("GET", "getDetails.php?val="+ str, true);

我正在尝试根据下拉列表中的选择更改表单字段的值。当我第一次做出选择时我就得到了正确的结果但当我现在做出不同的选择时,值仍然相同。我已经检查了 getDetails.php 中 session 变量 $_SESSION['Member_details'] 的值,它的值非常好,但 session 变量在modifyDetails.php 没有更新它的值。

"modifyDetails.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>

"getDetails.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 调用发生在页面加载后,当 session 处于状态“A”时,您的 JS 就会被渲染。

一旦您进行 Ajax 调用,它就处于状态“B”,但此时已经对 Session 进行了调用,并且初始 View 已经呈现。

因此,为了解决这种情况,您应该通过 Ajax reposne 使用 JSON 传递正在更改的变量。

关于javascript - 在第二次 GET 请求后,第一页中的 PHP session 变量值未更新为第二页中的 session 变量值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35775118/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com