如果... elseif不能超过2个条件?

时间:2015-07-19 15:41:36

标签: php html forms if-statement

我在html中创建了一个表单,其中多个按钮的名称与(sub1,2,3..so)不同,但是为所有这些按钮添加了相同的值(value =“Update”)。我有一个问题,当点击任何按钮时,它可以控制我的所有输入框,所以我搜索了这个问题的解决方案,并遇到了if..elseif语句的PHP脚本但是当我试图运行它时,只有前两个if和elseif条件被编译,其余条件被忽略。 下面是我的PHP代码,所以请大家帮我解决这个问题。我相信我的问题也会帮助很多其他人:)

<?php 
if($_POST['header']){
    if(isset($_POST['header']) && trim($_POST['header']) != ""){
$fp = fopen("assets/config_header.php", 'w');
fwrite($fp, '<?php');
fwrite($fp, ' ');
fwrite($fp, '$header = "'.trim($_POST['header']).'";');
fwrite($fp, ' ');
fwrite($fp, '?>');
fclose($fp); 
}
}
elseif($_POST['color']) {
    if(isset($_POST['color']) && trim($_POST['color']) != ""){
$fp = fopen("assets/config_header5.php", 'w');
fwrite($fp, '<?php');
fwrite($fp, ' ');
fwrite($fp, '$color= "'.trim($_POST['color']).'";');
fwrite($fp, ' ');
fwrite($fp, '?>');
fclose($fp);

}
}
elseif($_POST['headline']) {
if(isset($_POST['headline']) && trim($_POST['headline']) != ""){
$fp = fopen("assets/config_header1.php", 'w');
fwrite($fp, '<?php');
fwrite($fp, ' ');
fwrite($fp, '$headline = "'.trim($_POST['headline']).'";');
fwrite($fp, ' ');
fwrite($fp, '?>');
fclose($fp); 
}
}
elseif($_POST['color1']) {
if(isset($_POST['color1']) && trim($_POST['color1']) != ""){
$fp = fopen("assets/config_header6.php", 'w');
fwrite($fp, '<?php');
fwrite($fp, ' ');
fwrite($fp, '$color1= "'.trim($_POST['color1']).'";');
fwrite($fp, ' ');
fwrite($fp, '?>');
fclose($fp);
}
}
elseif($_POST['subhead']) {
if(isset($_POST['subhead']) && trim($_POST['subhead']) != ""){
$fp = fopen("assets/config_header2.php", 'w');
fwrite($fp, '<?php');
fwrite($fp, ' ');
fwrite($fp, '$subhead = "'.trim($_POST['subhead']).'";');
fwrite($fp, ' ');
fwrite($fp, '?>');
fclose($fp); 
}
}
elseif($_POST['color2']) {
if(isset($_POST['color2']) && trim($_POST['color2']) != ""){
$fp = fopen("assets/config_header7.php", 'w');
fwrite($fp, '<?php');
fwrite($fp, ' ');
fwrite($fp, '$color2= "'.trim($_POST['color2']).'";');
fwrite($fp, ' ');
fwrite($fp, '?>');
fclose($fp);

}
}
elseif($_POST['prodname']) {
if(isset($_POST['prodname']) && trim($_POST['prodname']) != ""){
$fp = fopen("assets/config_header3.php", 'w');
fwrite($fp, '<?php');
fwrite($fp, ' ');
fwrite($fp, '$prodname= "'.trim($_POST['prodname']).'";');
fwrite($fp, ' ');
fwrite($fp, '?>');
fclose($fp);

}
}
elseif($_POST['vidid']) {
if(isset($_POST['vidid']) && trim($_POST['vidid']) != ""){
$fp = fopen("assets/config_header4.php", 'w');
fwrite($fp, '<?php');
fwrite($fp, ' ');
fwrite($fp, '$vidid= "'.trim($_POST['vidid']).'";');
fwrite($fp, ' ');
fwrite($fp, '?>');
fclose($fp);

}

}

?>

提前致谢:)是的,如果有任何更短的方式来执行此任务,那么请让我知道:)

2 个答案:

答案 0 :(得分:1)

您的代码就像这样

<?php 
if($_POST['header']){
    if(isset($_POST['header']) && trim($_POST['header']) != "")
    {
        //some code
    }
}

:
:
:
:
elseif($_POST['vidid']) 
{
    if(isset($_POST['vidid']) && trim($_POST['vidid']) != "")
    {
        //some code
    }
}

?> 

但是if ifif必须是这样的

if{
}
elseif{
}
else{
}

但是你的代码不包含你添加的其他内容if if else if if。你正在检查首先在post方法中的标题如果然后使用isset。如果你正在使用isset你不需要单独检查null isset会检查你。你可以直接检查空字符串为什么使用trim。

所以你的代码应该像这样

<?php 
if((isset($_POST['header']) && $_POST['header']!= "")
    {
        //some code
    }

:
:
:
:
if(isset($_POST['vidid']) && $_POST['vidid'] != "")
    {
        //some code
    }

?> 

如果仍然不起作用,则表示$ _post中的参数名称与实际不匹配,或者它们实际上是空的。

答案 1 :(得分:0)

试试这个。

mapply