2012-04-20 4 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";... 

так обычно я знаю, что я должен использовать Еогеасп как:

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

, чтобы сделать его видимым. моя проблема заключается в том, чтобы внедрить это в это сообщение из почты в эти кавычки.

так что если есть кто-то, кто мог бы мне помочь, я действительно был бы признателен.

спасибо большое.

+0

есть у попытался с 'addslashes ($ м)' ' – diEcho

+0

если ($ а === '1')' -> делает эта работа? С кодом, который вы даете, он никогда не будет работать. – Jon

+0

@ Возможно, я ошибаюсь, но вывешенные значения всегда строки –

ответ

1

Просто используйте конкатенацию строк, которая в PHP выполняется с использованием . (точка) оператор.

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

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

$message .= "end text"; 

Кроме того, вы должны смотреть в ваше переменное наименование ($ а на самом деле не описательный), а $ а является массивом, так что вы не можете сделать if ($a === '1'), вы должны использовать in_array().

+0

Я понимаю это правильно: if (in_array ($ a)) {(if $ a === '1') {$ msg [] = "text1" ... и так далее? Спасибо. – bonny

+0

@bonny no, используйте 'if (in_array ('1', $ yourArray)) {...}'. – CodeCaster

+0

ладно, теперь я понял. большое спасибо. хорошего дня. – bonny

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;?>