php 3个输入框 第一个输入内容 第二个框输入第一个框里面要变颜色的值,第三个输入颜色值对应第二个框
----------------------------代码-------------------------------
<form name="form1" method="post" action="#"> 输入内容 <input name="arrayName" type="text" id="arrayName"> 输入要对应变色的内容字 <input name="arrayfg" type="text" id="arrayName2"> 对应要变的色 <input name="color" type="text" id="color"> <p> <input type="submit" name="Submit" value="提交"> </p></form><?php$a=$_POST['arrayName'];//获取内容: 比如 输入
$b=$_POST['arrayfg'];//获取输入要变色的内容,这个框输入 输入 的|变|内 $c=$_POST['color']; // 输入 #ba0000|#000|#ffff00 其他字颜色统一 的|变|内 颜色分别是 红 黑 蓝$array=explode("|",$a);//分隔符把多个内容分开$Name=explode("|",$b);//变色分隔符隔开$color=explode("|",$c);$i=0;foreach($array as $key){ //循环$i++; ?>
<p style=" <?php if(@in_array($key,$Name)){?> color:<?php echo $color[$i-1]; ?>; <?php }?>"><?php echo $key; ?></p><?php }?> 展开
<form name="form1" method="post" action="#">
输入内容
<input name="arrayName" type="text" id="arrayName">
输入要对应变色的内容字
<input name="arrayfg" type="text" id="arrayName2">
对应要变的色
<input name="color" type="text" id="color">
<p>
<input type="submit" name="Submit" value="提交">
</p>
</form>
<?php
$a=$_POST['arrayName'];//获取内容: 比如 输入
$b=$_POST['arrayfg'];//获取输入要变色的内容,这个框输入 输入 的|变|内
$c=$_POST['color']; // 输入 #ba0000|#000|#ffff00 其他字颜色统一 的|变|内 颜色分别是 红 黑 蓝
$array=explode("|",$a);//分隔符把多个内容分开
$Name=explode("|",$b);//变色分隔符隔开
$color=explode("|",$c);
$i=0;
foreach($array as $key){ //循环
//$i++;
//$i不应放在此处,因为数组$array 要比数组 $color大。应把$i要在if里,如下
?>
<p style=" <?php if(@in_array($key,$Name)){?> color:<?php $i++;echo $color[$i-1]; ?>; <?php }?>"><?php echo $key; ?></p>
<?php }?>
//你写在容易出错,而且HTML和PHP混合着,实在难看,推荐用下面的写法
<form name="form1" method="post" action="#">
输入内容
<input name="arrayName" type="text" id="arrayName">
输入要对应变色的内容字
<input name="arrayfg" type="text" id="arrayName2">
对应要变的色
<input name="color" type="text" id="color">
<p>
<input type="submit" name="Submit" value="提交">
</p>
</form>
<?php
//要加上这一句,不然一进入此网页就会报错!,要注意
if(isset($_POST['arrayName']) && isset($_POST['arrayfg']) && isset($_POST['color'])){
$a=$_POST['arrayName'];//获取内容: 比如 输入
$b=$_POST['arrayfg'];//获取输入要变色的内容,这个框输入 输入 的|变|内
$c=$_POST['color']; // 输入 #ba0000|#000|#ffff00 其他字颜色统一 的|变|内 颜色分别是 红 黑 蓝
$array=explode("|",$a);//分隔符把多个内容分开
$Name=explode("|",$b);//变色分隔符隔开
$color=explode("|",$c);
$i=0;
foreach($array as $val){ //循环
if(in_array($val,$Name)){
echo "<p style='color:".$color[$i]."'>".$val."</p>";
$i++;//$i必需放在这个地方,因为$color数组比$array数组小
}else{
echo "<p style=''>".$val."</p>";
}
}
}
?>
上面的方法必需第一个框和第二、三个框的顺序一至。如果你要实现复杂点的,用下面的即可
<form name="form1" method="post" action="#">
输入内容
<input name="arrayName" type="text" id="arrayName">
输入要对应变色的内容字
<input name="arrayfg" type="text" id="arrayName2">
对应要变的色
<input name="color" type="text" id="color">
<p>
<input type="submit" name="Submit" value="提交">
</p>
</form>
<?php
//要加上这一句,不然一进入此网页就会报错!,要注意
if(isset($_POST['arrayName']) && isset($_POST['arrayfg']) && isset($_POST['color'])){
$a=$_POST['arrayName'];//获取内容: 比如 输入
$b=$_POST['arrayfg'];//获取输入要变色的内容,这个框输入 输入 的|变|内
$c=$_POST['color']; // 输入 #ba0000|#000|#ffff00 其他字颜色统一 的|变|内 颜色分别是 红 黑 蓝
$array=explode("|",$a);//分隔符把多个内容分开
$Name=explode("|",$b);//变色分隔符隔开
$color=explode("|",$c);
foreach($array as $val){ //循环
if(in_array($val,$Name)){
$i=array_search($val,$Name);//第二个框必需和第三个框的顺序一至,不然会乱掉
echo "<p style='color:".$color[$i]."'>".$val."</p>";
}else{
echo "<p style=''>".$val."</p>";
}
}
}
?>
颜色数组的键,是0,1,2……
但你是按照循环次数来取值的,所以有误
我直接在你程序上改了,你试下吧
<form name="form1" method="post" action="#">
输入内容
<input name="arrayName" type="text" id="arrayName">
输入要对应变色的内容字
<input name="arrayfg" type="text" id="arrayName2">
对应要变的色
<input name="color" type="text" id="color">
<p>
<input type="submit" name="Submit" value="提交">
</p>
</form>
<?php
$a=$_POST['arrayName'];//获取内容: 比如 输入
$b=$_POST['arrayfg'];//获取输入要变色的内容,这个框输入 输入 的|变|内
$c=$_POST['color']; // 输入 #ba0000|#000|#ffff00 其他字颜色统一 的|变|内 颜色分别是 红 黑 蓝
$array=explode("|",$a);//分隔符把多个内容分开
$Name=explode("|",$b);//变色分隔符隔开
$color=explode("|",$c);
$i=0;
$color_i=0;//注意,这里新增一个计数
foreach($array as $key){ //循环
$i++;
?>
<p style=" <?php if(@in_array($key,$Name)){?> color:<?php echo $color[$color_i];$color_i++;//注意,这里新增一个自加
?>; <?php }?>"><?php echo $key; ?></p>
<?php }?>