我在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);
}
}
?>
提前致谢:)是的,如果有任何更短的方式来执行此任务,那么请让我知道:)
答案 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