2010-09-29 58 views
-2
<? 
$nimi = $_POST['nimi']; 
$nimed = $_POST['nimed']; 
if ($nimi) { 
    if ($nimed) { 
     $nimed .= ', ' .$nimi; 
    } 
    else { 
     $nimed = $nimi; 
    } 
} 
?> 
<html> 
<form method="post"> 
Sisesta nimi: 
<input type="text" name="nimi" size="9" /> 
<input type="hidden" name="nimed" value="<?= $nimed ?>" /> 
<input type="submit" value="Lisa" /> 
</form> 
<? 
$m = explode(', ',$nimed); 
sort ($m); 
if ($nimi) { 
    echo '<ol>'; 
    foreach ($m as $nimi) { 
     echo "<li>$nimi<br /></li>"; 
    } 
} 
echo '</ol>'; 
?> 
</html> 

E:我应该把IN_ARRAY所以它会说:“这个名字已经存在,而不是添加IT到列表的”

if (in_array($nimi,$m)) {} 
+6

我不小心整个问题:( – halfdan 2010-09-29 10:08:28

+0

我不和你blablabla无论是什么,也许不在乎写一个真正的问题? – deceze 2010-09-29 10:08:43

+0

我试过真的很难,但我不知道你想要什么。请描述你问题正确 – 2010-09-29 10:10:02

回答

1

我是从假设这$ nimi是一个单一的名称,$ nimed是提交的名称列表。

如果你想确保一倍名不在列表中,仍然输出,你会concatting名称的列表,以及

if($nimi) { 
    if($nimed) { 
     if(strpos($nimi,$nimed) === false) { 
      echo("THIS NAME IS ALREADY THERE INSTEAD OF ADDING IT TO THE LIST"); 
     } 
     else { 
      $nimed .= $nimed . ', ' . $nimi; 

... snip ... 

编辑线的东西之前检查in_array:本答案的第一部分被吸引了。删除。

1
$nimi = $_POST['nimi']; 
$nimed = $_POST['nimed']; 
$added = false; 
if ($nimi) { 
    if ($nimed) { 
     $temp = explode(', ',$nimed); 
     if (!in_array($nimi,$temp)) { 
      $nimed .= ', ' .$nimi; 
      $added = true; 
     } 
    } 
    else { 
     $nimed = $nimi; 
    } 
} 
... 
if ($nimi && !$added) { 
    echo 'Already in array'; 
}