【发布时间】:2015-07-13 00:11:49
【问题描述】:
我无法让我的 PHP 脚本正确读取和执行我的“IF.....ELSEIF”条件。
在我的第一个文件中,我有以下代码:
if(isset($_POST['submit']) {
$selected_radio = $_POST['selection'];
$_SESSION['my_selection'] = $_POST['selection'];
if (($selected_radio == '25') {
header("url=http://xxxxxxxxxxxxxxxxx");
}
elseif (($selected_radio == '50') {
header("url=http://xxxxxxxxxxxxxxxxx");
}
}
这是最简单的部分。
如果选择了“单选按钮”,我有一个 Javascript 函数可以打开一个“新(子)窗口”
这也很容易。
但是,困难的部分来了:在这个新窗口中,用户必须从另一个单选按钮中进行选择:
if(isset($_POST['submit']) {
$selected_radio = $_POST['my_response'];
if (($_POST['my_response'] = 'yes') && ($_SESSION['my_selection'] = '25'))
{
echo '<script type="text/javascript">window.opener.location =
"/PHP/25.php";setTimeout("window.close();", 1000);</script>';
}
elseif (($_POST['my_response'] = 'yes') && ($_SESSION['my_selection'] =
'50')) {
echo '<script type="text/javascript">window.opener.location =
"/PHP/50.php";setTimeout("window.close();", 1000);</script>';
}
基本上,这意味着:如果用户在当前(子)窗口中选择“yes”,则窗口关闭,父窗口重定向到“25.php " 或 "50.php"..........取决于选择的 $_SESSION['my_selection'] --- 的值在父窗口的前面
但是,由于某种原因,它不起作用。我的代码正在执行仅第一个 IF 条件:
if (($_POST['my_response'] = 'yes') && ($_SESSION['my_selection'] = '25'))
{
echo '<script type="text/javascript">window.opener.location =
"/PHP/25.php";setTimeout("window.close();", 1000);</script>';
}
它完全忽略了第二个......即使用户之前在父窗口中选择了“50”。
我的第一个想法是:单选按钮的 SESSION 值 ---- $_SESSION['my_selection'] --- 没有被转移到新的(子)窗口中.
但是,我使用“echo”来验证它是否正常工作。该值确实被转移到新的(子)窗口中。
但是,在子窗口关闭并且父窗口被重定向后,我再次使用“echo”来跟踪任何错误............它显示了那 : $_SESSION['my_selection'] 的值总是等于 "25" !
简而言之:为什么第二个 IF 语句被忽略??
elseif (($_POST['my_response'] = 'yes') && ($_SESSION['my_selection'] =
'50')) {
echo '<script type="text/javascript">window.opener.location =
"/PHP/50.php";setTimeout("window.close();", 1000);</script>';
【问题讨论】:
-
@HarshJoshi 没关系php.net/elseif
标签: php session if-statement session-variables new-window