#php #jquery
#php #jquery
Вопрос:
У меня есть скрипт, в котором jquery клонирует поле набора полей со зданием, этажом и крылом (полями ввода) Пользователь может создать столько наборов полей, сколько ему нужно. Что я пытаюсь выяснить, так это это.
Мне нужно объединить области вместе, иначе я мог бы просто выполнить цикл через aray вот так.
foreach ($_POST[$key] as $itemvalue) {
$message .= "n".$key. " : ".$itemvalue;
}
Моей первой мыслью было сделать это, но, конечно, это было глупо с моей стороны
foreach ($_POST['building'] as $value) {
$count ;
$message .="n Area" . $count;
$message .= "n Building: ". $value;
foreach ($_POST['floor'] as $value2){
$message .= "n Floor: ". $value2;
}
foreach ($_POST['wing'] as $value3){
$message .= "n Wing: ". $value3;
}
}
поскольку это просто приводит к размещению каждого этажа и крыла под каждым зданием вместо того, чтобы держать их отдельно.
моей следующей мыслью было объединить их в один long для каждого, разделенный символом и amp;amp;, но, по-видимому, foreach так не работает.
Есть ли у кого-нибудь предложения о том, как я могу это сделать?
@stewie Я внес предложенные вами изменения, но я почти уверен, что это не сработает.
foreach ($_POST['floor'] as $value)
{ $floor = $value; }
foreach ($_POST['wing'] as $value2) { $wing = $value2; }
foreach ($_POST['building'] as $value3)
{ $building = $value3; $building .= $floor; $building .= $wing; }
Это весь мой код, результат, который я пытаюсь получить, таков
Район # 1 Здание: Здание 1 Этаж : 2 Крыло: восточное
Район № 2 Здание: Корпус 2 Этаж : 5 Крыло: северное
<?php
if(isset($_POST['submit'])) {
$mailto = "me@myemail.com";
$subject = "form";
$message = "Values submitted from web site form:";
$header = "From: Jeremiah <Jeremiah@myemail.com>";
foreach ($_POST['floor'] as $value)
{
$floor = "nFloor : " . $value;
}
foreach ($_POST['wing'] as $value2)
{
$wing = "nWing : ".$value2;
}
foreach ($_POST['building'] as $value3)
{
$building = "nnBuilding " . $value3;
$building .= $floor ;
$building .= $wing;
$message .= $building;
}
mail($mailto, $subject, $message, $header);
}
?>
Комментарии:
1. В чем здесь проблема? Этот код работает нормально? Какой результат вы получаете и какой результат вы хотите?
2. @stewie, @rocket Я опубликовал весь скрипт и пример того, чего я пытаюсь достичь.
3. Я думал о $ floor и wing в виде массивов, но это просто возвращает меня в тупик.
4. Вот ссылка на форму, которую я использую, если это поможет thatmediaguy.com/keyform/index.php
Ответ №1:
грязно, но соответствует вашему оригинальному дизайну!
foreach ($_POST['building'] as $value) {
$count ;
$message ="n Area" . $count;
$message .= "n Building: ". $value;
$message2='';
foreach ($_POST['floor'] as $value2){
$message2 .= "n Floor: ". $value2;
}
foreach ($_POST['wing'] as $value3){
$message2 .= "n Wing: ". $value3;
}
echo $message;
echo $message2;
}
}
Что вам следует сделать, так это:
foreach(floor){set $floor}
foreach(wing) {set $wing}
Основной foreach
foreach(building)
{
$building = ...
$building .= $floor
$building .= $wing
}
Комментарии:
1. Прошу прощения, я новичок в PHP и не слежу. Мне все еще нужен способ объединить каждую группу в одном поле. Допустим, у меня есть поле под названием area, под каждой областью есть здание, этаж и крыло.
2. Есть более простой способ сделать это, исходя из того, что я рассматриваю в коде, который вы предоставляете, заключается в том, что мне все еще нужно создать массив из данных, которые я собирал из каждого цикла foreach.
3. Все, что в итоге получается, это получение первого введенного значения для floor и wing. Сборка, конечно, работает нормально.
4. вы не объединили переменные floor и wing.
5. Я не понимаю, о чем вы говорите