2014-10-17 10 views
1

У меня есть страница с php-страницей, на которой отображаются клиентские продукты. На той же странице у меня есть форма, которая отправляет личные данные клиента, такие как имя, фамилия и т. Д., А также информацию о продукте, такую ​​как имя продукта, количество и т. Д. Непосредственно на мой адрес электронной почты.Преобразование массива в строку

Теперь проблема заключается в том, что при отправке формы на мой адрес электронной почты я получаю всю информацию, но не информацию о продукте, например, в поле имени продукта в электронном письме заказа у меня есть ARRAY.

У меня проблема с преобразованием массива в строку, но я не знаю, как, я пробовал несколько примеров, но никто из них не работал. Bellow Я поставил свои коды, которые, по моему мнению, являются моей проблемой. `echo ''; echo '';

 echo '<input type="hidden" name="product_name['.$cart_items.']" value="'.$obj->product_name.'" />'; 
    echo '<input type="hidden" name="item_code['.$cart_items.']" value="'.$product_code.'" />'; 
    echo '<input type="hidden" name="item_desc['.$cart_items.']" value="'.$obj->product_desc.'" />'; 
    echo '<input type="hidden" name="item_qty['.$cart_items.']" value="'.$cart_itm["qty"].'" />'; 
    $cart_items ++; 
    echo '<input type="submit" value="submit">';` 


function clean_string($string) { 
$bad = array("content-type","bcc:","to:","cc:","href"); 
return str_replace($bad,"",$string); 

$ product_name_string = implode ("", $ cart_items); }

$email_message .= "Nume: ".clean_string($name1)."\n"; 

    $email_message .= "E-mail: ".clean_string($email1)."\n"; 
    $email_message .= "Cos: ".clean_string($product_name_string)."\n"; 

мне нужно немного помочь, пожалуйста. Thx в advace.

+0

вы можете оставить содержимое 'var_dump ($ cart_items);'? – ToBe

+0

в вашем скрипте $ cart_items - целое число. –

ответ

0

Базовый PHP: массив, используемый в контексте строки, будет просто буквальным словом Array.

например.

$foo = array('a', 'b', 'c'); 
echo $foo; 

напечатает слово Array, не a,b,c или любой другой.

Вы говорите PHP ваши поля ввода должны рассматриваться как массивы:

<input type="text" name="item_code[foo]" ... 
            ^---^---- 

так $_POST['item_code'] сам будет массивом. Если вы хотите, чтобы содержание этих массивов должны присутствовать в вашей электронной почте, то есть что-то вроде:

$item_codes = implode(',', $_POST['item_code']); 
+0

Ну. Спасибо за ваше решение, он работает отлично. Спасибо, мужик. :) –

+0

@AdrianAdr вы должны принять ответ, если он правильный – Bankzilla

1

вы можете использовать serialize(), вы можете также использовать функцию implode() Другой хорошей альтернативой является http_build_query

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