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 }?>
展开
 我来答
ser0632
2013-09-01 · 超过22用户采纳过TA的回答
知道答主
回答量:57
采纳率:0%
帮助的人:26.9万
展开全部
//正确如下
<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>";

}

}

}

?>


zzs1949
2013-09-01 · TA获得超过1600个赞
知道小有建树答主
回答量:1250
采纳率:80%
帮助的人:1129万
展开全部
你没有处理好颜色那里
颜色数组的键,是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 }?>
追问

你好,这种方法只要第二个框  字顺序一改变 颜色就乱了,这样有没有什么办法可以解决?

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式