我创建了一个更新记录的页面。我想将学生的ID从一个页面传递到另一个页面。我试图通过window.location发送它,但它无法正常工作。在ajax中,我试图导航到其他页面,但也没有成功。如何在不显示查询字符串的情况下传递数据并在其他页面上接收? ajax代码是
var id = $(this).data('username');
$.ajax({
var id = $(this).data('username');
$.ajax({type: "POST",
cache: false,
data: id,
url: "Update.php",
success: function(dto)
{
//but I do not require this return call I just
// want to pass the data to update.php
}
});
//this is the code where the button is being clicked
<table class="table table-condensed" >
<thead style="background-color:#665851" align="center">
`<tr>
<td style="color:white">Roll No</td>
<td style="color:white">Name</td>
<td style="color:white">Department</td>
<td style="color:white">Click To Update</td>
</tr>
</thead>
<tbody style="background-color:whitesmoke; border:initial" id="tblBody" align="center">
<?php
$database="firstdatabase"; //database name
$con = mysqli_connect("localhost","root" ,"");//for wamp 3rd field is balnk
if (!$con)
{ die('Could not connect: ' . mysql_error());
}
mysqli_select_db($con,$database );
$state = "SELECT rollno ,name, dept FROM student ;";
$result = mysqli_query($con,$state);
$output = 1;
$outputDisplay = "";
$noRows = mysqli_affected_rows($result);
if($result)
{
$num = mysqli_affected_rows($con);
//$row = mysqli_fetch_array($result,MYSQLI_NUM);
while ($row = mysqli_fetch_array($result))
{
$r = $row['rollno'];
$n = $row['name'];
$d = $row['dept'];
$outputDisplay .= "<tr><td>".$r."</td><td>".$n."</td><td>".$d."</td><td align='right'>
<button type='button' name='theButton' value='Detail' class='btn' id='theButton' data-username='$r'> <img src='edit.jpg'/></button>
</td>
</tr>";
}
}
else
{
$outputDisplay .= "<br /><font color =red> MYSql Error No: ".mysqli_errno();
$outputDisplay .= "<br /> My SQl Error: ".mysqli_error();
}
?>
<?php
print $outputDisplay;
?>
</tbody>
</table>
答案 0 :(得分:1)
如果两个网页位于同一个网域,您可以使用localStorage
,storage
事件在html
个文档之间传递数据
在第二页
window.addEventListener("storage", function(e) {
// do stuff at `storage` event
var id = localStorage.getItem("id");
});
在第一页
// do stuff, set `localStorage.id`
localStorage.setItem("id", "abc");
答案 1 :(得分:0)
当您使用window.location时,您的页面将转到另一个页面。 ajax在活动页面上工作。你不能使用。
答案 2 :(得分:0)
通常,您可以使用此$_SESSION
变量的会话将其存储到会话中,也可以通过get参数传递该值。然后使用$_GET
或$_POST
参数。
答案 3 :(得分:0)
你可以尝试使用cookies
Set the cookie
<?php
setcookie("name","value",time()+$int);
/*name is your cookie's name
value is cookie's value
$int is time of cookie expires*/
?>
Get the coockie
<?php
echo $_COOKIE["your cookie name"];
?>
答案 4 :(得分:0)
在第一页填充<form method="post" [...]>
并提供所需信息;您可以根据需要使用CSS更改其方面。
发送<form>
时,您只需要一个使用$_POST
填充新页面的PHP脚本/页面。
如果您尝试从第一页导航到第二页,则比AJAX更容易。
答案 5 :(得分:0)
如果您已有表单并希望将其发布到更新脚本,则可以将学生ID添加为隐藏表单元素示例:
<input type="hidden" name="student_id" value="<?php echo $student_id; ?>">
否则,如果您想从另一个页面重定向到具有学生ID的更新页面,最好的方法可能是$_GET变量。
因此,URL看起来像这样:http://domain.com/update.php?student_id=1
然后你的update.php会包含一个简单的检查。
if(!empty($_GET['student_id'])) {
$student_id = $_GET['student_id'];
// Ready to update
} else {
// Throw 404 error, or redirect to an create page
}