为什么 PHP 变量不带到下一个 if 语句



我有两个if语句,在第一个if语句中,$date变量显示良好,但在下一个if语句中,相同的$date变量为null。我怎样才能携带同一个变量的赋值?

if(isset($_POST['find'])){
$ret= mysqli_query($con,"SELECT * FROM users WHERE city='$cityy' and state='$statee' and schedule_one='0'");
$num=mysqli_fetch_array($ret);
$city = $num['city'];
$state = $num['state'];
$schedOne = $num['schedule_one_date'];
$schedOnAddress = $num['schedule_one_address'];
$date = $schedOne;
$_POST['schedule_one_date'] = $date;   
if($num>0){
//$date is being displayed accordingly
$date = $num['schedule_one_date'];
echo "<script>let isBoss = confirm('You got a job available at $city $date');</script>";
?>
<br>
<p>There is a job offer at <b><?php echo "$city $state"; ?></b></p>
<p>Scheduled for <b><?php echo "$schedOne"; ?></b></p>
<form action="" method="post">
<input id="cancel" type="submit" value="Cancel" name="cancel">
<div id="content">
//$date is being displayed accordingly
<?php echo "$date";?>
</div>
<input id="accept" type="submit" value="Accept" name="accept">
</form>
<img src="assets/images/searching.gif" width="160px" height="150px">
<?php
}
else
{
$extra="index.php";
echo "<script>window.location.href='".$extra."'</script>";
}
?>
</center>

<?php
}
if(isset($_POST['accept'])){
$id = $_SESSION['id'];
//$date variable is NULL
echo "<script>alert('*No $date');</script>";
} 

是否可以在表单中创建一个隐藏字段,并将该值分配给隐藏字段,然后将其作为`$_POST['$date']?

将此输入字段添加到表单中,您可以将其传递到if(isset($_POST['accept']))条件语句中,以便在其中再次调用它。

<input name="date" type="text" value="<?php echo htmlspecialchars($schedOne); ?>" hidden>

现在,您应该能够访问这样的变量;

if(isset($_POST['accept'])){
$id = $_SESSION['id'];
$date = $_POST['date'];
...

您可以携带,但应该在php中使用点字符来分隔字符串和变量。你可以这样更改你的代码:

if(isset($_POST['accept'])){
$id = $_SESSION['id'];
//$date variable is NULL
echo "<script>alert('*No " . $date . "');</script>";
} 

最新更新