2012-04-20 24 views
0

我有一些理解上的困難。我在HTML中,某些複選框是這樣的:如何將數組實現爲帶引號的文本

<input type="checkbox" name="a[]" value="1"> 
<input type="checkbox" name="a[]" value="2"> 
<input type="checkbox" name="a[]" value="3"> 

我想評價的[]多種選擇,看看有什麼選擇這就是爲什麼我要使用數組。

沒問題,現在的問題是:提交後我已經發布該數組。

if (isset($_POST['submit'])) { 

    $a = $_POST['a']; 
} 

進一步我喜歡設置一些消息到另一個數組對每個值被選擇:

if ($a === '1'){ 
    $msg[] = "text1"; 
} 
if ($a === '2'){ 
    $msg[] = "text2"; 
} and so on... 

現在我已經存儲這些消息到該陣列$msg[]

下一個步驟,在這裏來我真正的問題:

我喜歡在將發送的郵件中顯示整個選擇。所以到這一點,我有:

$to = "[email protected]"; 
$subject = "some text"; 
$message = "some text... 

show what was selected: 

$msg 

end text";... 

所以通常我知道我必須使用的foreach像:

<?php if(isset($msg)):?> 
    <?php foreach($msg as $m):?> 
     <p> 
     <?php echo $m;?> 
     </p> 
    <?php endforeach;?> 
<?php endif;?> 

使其可見。我的問題是將這個消息從郵件中實現成該引號。

所以如果有人能夠幫助我,我真的很感激。

非常感謝。

+0

具有u試着用'和addslashes($ M)'' – diEcho 2012-04-20 13:26:41

+0

如果($ A === '1')' - >做這項工作?用你給它的代碼是行不通的。 – Jon 2012-04-20 13:27:42

+0

@Jon我可能是錯的,但發佈的值總是字符串 – 2012-04-20 13:29:16

回答

1

只需使用字符串連接,在PHP中使用字符串連接完成使用(點)操作符。

$message = "some text... \n\nshow what was selected:\n\n"; 

foreach ($a as $b) 
{ 
    $message .= $b . "\n"; 
} 

$message .= "end text"; 

而且你應該看看你的變量命名($ a是不是真的描述),和$ a是一個數組,所以你不能做if ($a === '1'),你應該使用in_array()

+0

我明白了嗎:if(in_array($ a)){(if $ a ==='1'){$ msg [] =「text1」...等等?感謝迄今。 – bonny 2012-04-20 13:40:19

+0

@bonny不,使用'if(in_array('1',$ yourArray)){...}'。 – CodeCaster 2012-04-20 13:41:13

+0

好吧,現在我明白了。非常感謝。祝你今天愉快。 – bonny 2012-04-20 13:49:32

0

你應該做

$msg = array(); 
foreach($a as $checked){ 
    $msg[$a] = "text$a"; 
} 

然後

<?php if(isset($msg)):?> 
    <?php foreach($msg as $k => $m):?> 
     <p> 
     <?php echo "$k : $m";> 
     </p> 
    <?php endforeach;?> 
<?php endif;?> 
相關問題