【发布时间】:2015-07-19 15:41:35
【问题描述】:
我在 html 中创建了一个带有多个按钮的表单,这些按钮的名称不同(sub1,2,3..so on),但对所有按钮都设置了相同的值(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);
}
}
?>
在此先感谢 :) 是的,如果有任何更短的方法来执行此任务,请告诉我 :)
【问题讨论】:
-
之前关闭
if时不需要else if -
是否要检查第二个 if 条件内的条件??
-
@Drudge 不,我不希望它被嵌套,而是在 else if 阶梯中
-
@JoshStevens 先生,您能否详细说明一下,或者您能否编写至少最多 4 个条件的正确代码?由于我是 php 语言的新手,我在此之前曾在 c++ 和 java 中工作过,所以这真的对我有很大的帮助。
-
如果所有 post 变量都驻留在一个 html 表单中,您不必检查
isset,因为它总是在提交表单时设置。它将为空或带有值。
标签: php html forms if-statement