2013-08-07 3 views
0

Im принимает данные из формы и отправляет ее по электронной почте с использованием wp_mail, так как существует несколько данных (все данные флажка), очевидно, должно быть foreach.Передайте массив внутри foreach в переменную за пределами foreach?

Я не могу обернуть голову вокруг получения данных внутри foreach и использовать ее вне инструкции.

//My form data 
$checks = $_POST['personalization_result']; 

//Pass the foreach array into this variable and use this to mail 
$checkString = ''; 

    //For each checkbox data 
    foreach ($checks as $k => $v) { 
    var_dump ($v); 
    } 

//Email the data 
$sent = wp_mail($to, $subject, $checkString, $headers); //I have set up the other variables but its not necessary to add here just focused on $checkString 

Отрывок формы

<form action="<?php the_permalink(); ?>" method="post"> 

<?php echo $checkString; ?>// Trying to see what the array is doing 

<input type="hidden" name="submitted" value="1"> 

<p><input type="submit"></p> 

<li class="option table selected"> 
    <input type="hidden" value="0" name="personalization_result[memory_0]"> 
    <input type="checkbox" value="1" name="personalization_result[memory_0]" id="personalization_result_memory_0" checked="checked">           
</li> 


<li class="option table selected"> 
    <input type="hidden" value="0" name="personalization_result[memory_1]"> 
    <input type="checkbox" value="1" name="personalization_result[memory_1]" id="personalization_result_memory_1" checked="checked">          
</li> 

Im извините, если это немного noobish, но это, как я узнаю, спрашивая.

+0

Объявите массив вне для. –

+0

$ v = array(); ? –

+0

Вы хотите сказать, что вы хотите добавить '$ v' в' $ checkString' каждый цикл? – George

ответ

2

С wp_mail «s третьего параметром message является строкой, то я думаю, что вы можете избежать Еогеаспа вообще и использовать array_values, чтобы получить значение как массив и присоединиться к ним с каким-то клеем вместо зацикливания через $checks массива. Пожалуйста, попробуйте:

$checkValues = array_values($checks); 
$checkString = implode(',', $checkValues); // This generates comma separated list of values. 

Вы можете использовать любой клей (запятая в данном примере) вы, как в вызове функции implode на основе того, как вы хотите, чтобы отобразить .$checkValues

+0

Спасибо, я собираюсь реализовать это сейчас! –

+0

ДА, это сработало красиво, вы мужчина ... ответы выше были хорошими, но мне это нравится :) Просто по электронной почте, и это сработало чудесно .. –

Смежные вопросы