我遇到了让我的PHP脚本正确读取并执行我的“如果.... .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>';
}
基本上,这意味着:如果用户选择“是 “在当前(子)窗口中,窗口关闭,父窗口重新指向”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']总是等于“”!
简而言之:为什么第二个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没关系http://php.net/elseif – vascowhite