我正在尝试将隐藏值从页面传递到另一个页面,它只对第一个记录工作正常但是对于其他记录它显示错误 这是代码:
$sql = "SELECT id,jdes,title FROM job";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
// output data of each row
while($row = $result->fetch_assoc()) {
?>
<input type="hidden" id="hidden_user_id" value="<?php echo $row["id"] ?>">
<h3><?php echo $row["title"] ?>:</h3>
<p class="lead">
<?php echo $row["jdes"] ?>
</p>
<button type="button" id="requestthis" class="btn btn-primary">
<a href="jobs-inner.php">Request</a>
</button>
<?php
}
} else {
echo "Nothing to display Yet";
}
?>
作业-inner.php
<?php
echo $_GET['hidden_id'];
?>
使用Javascript: -
$(function() { //ready function
$('#requestthis').on('click', function(e){ //click event
e.preventDefault();
var hidden_id = $('#hidden_user_id').val();
var url = "jobs-inner.php?hidden_id="+hidden_id;
window.location.replace(url);
})
})
错误: -
Undefined index: hidden_id in C:\wamp64\www\project\jobs-inner.php on line 3
这可能是一个简单的问题,但我是初学者,我无法弄明白。
答案 0 :(得分:1)
您的价值是独一无二的,但身份证明并非如此。使输入的id唯一,如下所示。
<input type="hidden" id="hidden_user_<?php echo $row["id"] ?>" value="<?php echo $row["id"] ?>">
但是您必须对下面的代码进行计数,以便根据您拥有的行数进行显示。
<?php
echo $_GET['hidden_id'];
?>
不使用JavaScript
$sql = "SELECT id,jdes,title FROM job";
$result = $conn->query($sql);
$count = 1;
if ($result->num_rows > 0) {
// output data of each row
while($row = $result->fetch_assoc()) {
?>
<input type="hidden" id="hidden_user_<?php echo $count ?>" value="<?php echo $row["id"] ?>">
<h3><?php echo $row["title"] ?>:</h3>
<p class="lead"><?php echo $row["jdes"] ?></p>
<form id="<?php echo $count ?>" action="jobs-inner.php?hidden_id=<?php echo $row["id"] ?>" method="post">
<input type="submit" vaule="Request">
</form>
<?php
$count++;
}
} else {
echo "Nothing to display Yet";
}
?>