2013-04-23 7 views
0

Имея некоторые проблемы с этим. У меня есть массив, который вводит мою электронную почту данных формы формы, но пытается получить способ объединить некоторые флажки. Для «Захватов» есть несколько флажков, которые я бы хотел указать, если они были отмечены. Ниже куски кода (это только соответствующий фрагмент из PHP, форма почтовой программы отлично работает просто не могу получить все проверочные Boxs к сообщению):Форма PHP для электронной почты

$grind = join(", ", $_REQUEST["grind"]); 

$fields = array(); 
$fields{"AccountName"} = "Accounts's Name: "; 
$fields{"FitterName"} = "Fitter's Name: "; 
$fields{"CustomerCat"} = "__CUSTOMER INFO___"; 
$fields{"CustomerName"} = "Customer's Name: "; 
$fields{"CustomerPhone"} = "Customer's Phone: "; 
$fields{"CustomerAddress"} = "Customer's Address: "; 
$fields{"CustomerCity"} = "Customer's City: "; 
$fields{"CustomerState"} = "Customer's State; "; 
$fields{"CustomerZip"} = "Customer's Zip: "; 
$fields{"WedgeType"} = "Wedge Loft: "; 
$fields{"$grind"} = "Wedge Grind: " ; 
$fields{"WedgesShaft"} = "Wedge Shaft: "; 

Вот HTML

<input type="checkbox" name="grind[V-Grind]" class="grinds" value="V-Grind">V-Grind 
<input type="checkbox" name="grind[Tour Grind]" class="grinds" value="Tour Grind">Tour Grind 
<input type="checkbox" name="grind[Heal Grind]" class="grinds" value="Heal Grind">Heal Grind 
<input type="checkbox" name="grind[No Grind]" class="grinds"value="No Grind">No Grind 

Я знаю, что это $fields{"$grind"} = "Wedge Grind: " ; - это неправильный способ передать массив наверху из $ grind, но не уверен, что будет правильным, так как все остальное отлично работает.

+0

Вы хотите получить доступ к вашему массиву следующим образом: $ fields ['AccountName'] = 'foo'; Если вы включите отображение ошибок и отображение ошибок на своем сервере, PHP выведет сообщения об ошибках, объясняющие проблему. –

+0

Все поля отлично работают, за исключением '$ fields {" $ grind "} =" Wedge Grind: ";'. Я знаю, что это неверный способ получить информацию из '$ grind = join (", ", $ _REQUEST [" grind "]);' Просто не уверен, как это сделать в '$ fields ['ID] = 'EMail Output'; 'form. – Packy

ответ

0

Ваш код будет правильно взорвать массив с разделением запятой. Но вы используете значения POSTed, чтобы назвать ключ элемента массива. Это не поможет вам создать электронную почту.

Например, если пользователь выбирает «Исцели Grind» и «Тур Grind», то ваш код создает:

$fields{"Heal Grind, Tour Grind"} = "Wedge Grind: "; 

Так посланные значения сохраняются в ключе, который, кажется, не очень логично мне. Почему бы не сделать это:

$fields{"WedgeGrind"} = "Wedge Grind: " . $grind; 

Тогда в электронной почте, когда вы ссылаетесь это поле, оно будет создавать:

Wedge Grind: Heal Grind, Tour Grind 

Ваши значения POST правильно. Поскольку вы не предоставили полный код, я не уверен, как вы пытаетесь создать электронную почту, но сохранение значений в ключе массива обычно не выполняется, как это делается. Логичнее использовать второй пример и создать электронное письмо, используя это.

Также у вас есть опция флажка для «No Grind», но пользователь может также выбрать любую другую возможность измельчения плюс «No Grind». Поэтому, если вы получите заказ на «No Grind» и «V-Grind», это смутит вас (я просто предполагаю), и вам нужно будет следить за клиентом, чтобы проверить заказ. Скорее, вы можете сделать флажки для разметки опциональными и удалить параметр «Без измельчения», таким образом, если не измельчается POSTED, вы не знаете, что требуется шлифовка.

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

+0

Спасибо. Это имеет смысл для меня, а также для части «No Grind». Я просто ввел код '$ fields {" WedgeGrind "} =" Wedge Grind: ". $ grind; ', который, как я думал, будет работать, но в электронном письме просто отображается' Wedge Grind: '. Не уверен, что причиной являются '$ grind = join (", ", $ _REQUEST [" grind "]); и HTML. – Packy

+0

Я не знаю вашей полной реализации, поэтому я не знаю, есть ли какая-либо ошибка дальше по строке, но этот удаленный бит работает отлично. Невозможно опубликовать HTML из-за слишком длинного комментария, но если вы поместите свою форму флажка ниже этого, выберите некоторые параметры и отправьте, это создаст элемент массива и выведет его. Работаю для меня. ' ' –

+0

Спасибо, что он работает сейчас. Возможно, вам нужно немного обновить. Большое спасибо! – Packy