У меня есть форма, сгруппированная в разные дни, с понедельника по четверг.Эффективный способ хранения данных
В большинстве дней есть два класса, каждый из которых имеет два разных доступных времени (некоторые содержат только 1)?
У меня есть форма, сгруппированная в разные дни, с понедельника по четверг.Эффективный способ хранения данных
В большинстве дней есть два класса, каждый из которых имеет два разных доступных времени (некоторые содержат только 1)?
Вы можете сделать это с помощью многомерного массива:
<?php
echo '<pre>';
print_r($_POST);
echo '</pre>';
?>
<form method="POST" action="">
<fieldset style="border:#00FFFF 3px solid">
<legend>Monday</legend>
Yoga Class: (Becc)<br>
<input type="checkbox" name="classtimes[Yoga][monday][]" value="9am-11am">9am-11am<br>
<input type="checkbox" name="classtimes[Yoga][monday][]" value="12pm-3pm">12pm-3pm<br>
<br>
Muay Thai Fitness: (Royce)<br>
<input type="checkbox" name="classtimes[Muay Thai][monday][]" value="8am-10am">8am-10am<br>
<input type="checkbox" name="classtimes[Muay Thai][monday][]" value="3pm-6pm">3pm-6pm<br>
</fieldset>
<fieldset style="border:#00FFFF 3px solid">
<legend>Tuesday</legend>
Yoga Class: (Becc)<br>
<input type="checkbox" name="classtimes[Yoga][tuesday][]" value="9am-11am">9am-11am<br>
<input type="checkbox" name="classtimes[Yoga][tuesday][]" value="12pm-3pm">12pm-3pm<br>
<br>
Muay Thai Fitness: (Royce)<br>
<input type="checkbox" name="classtimes[Muay Thai][tuesday][]" value="8am-10am">8am-10am<br>
<input type="checkbox" name="classtimes[Muay Thai][tuesday][]" value="3pm-6pm">3pm-6pm<br>
</fieldset>
<input type="submit">
</form>
Выход будет:
Array
(
[classtimes] => Array
(
[Yoga] => Array
(
[monday] => Array
(
[0] => 9am-11am
)
[tuesday] => Array
(
[0] => 9am-11am
)
)
[Muay Thai] => Array
(
[monday] => Array
(
[0] => 8am-10am
[1] => 3pm-6pm
)
[tuesday] => Array
(
[0] => 8am-10am
[1] => 3pm-6pm
)
)
)
)
Не могу вас поблагодарить! Я никогда не знал о многомерных массивах. Я думаю, что это будет очень эффективно. :) – user2632667
<fieldset style="border:#00FFFF 3px solid">
<legend>Tuesday</legend>
Yoga Class: (Becc)<br>
<input type="checkbox" name="classtimes[yoga][]" value="9am-11am">9am-11am<br>
<input type="checkbox" name="classtimes[yoga][]" value="12pm-3pm">12pm-3pm<br>
<br>
Muay Thai Fitness: (Royce)<br>
<input type="checkbox" name="classtimes[muay][]" value="8am-10am">8am-10am<br>
<input type="checkbox" name="classtimes[muay][]" value="3pm-6pm">3pm-6pm<br>
</fieldset>
Затем в PHP:
foreach($_POST["classtimes"]["yoga"] as $classtimes){
echo $classtimes;
}
Это сработает, но на моем PHP после проверки массивов мне нужно будет открыть текстовый файл и сохранить информацию (например, opt1, opt4). Исправьте меня, если я ошибаюсь, но не будет ли этот код сохранять только значение, а не время (9 am-11am)? – user2632667
Да, я просто ушел от того, что вы опубликовали. Редактирование ответа. –
Спасибо, что будет работать хорошо. Я бы проголосовал, если бы мог! – user2632667
, когда я я обычно добавляю что-то к имя флажок, что дает мне дополнительную информацию, например:
Yoga Class: (Becc)<br>
<input type="checkbox" name="0classtimes0" value="9am-11am">9am-11am<br>
<input type="checkbox" name="0classtimes0" value="12pm-3pm">12pm-3pm<br>
<br>
Muay Thai Fitness: (Royce)<br>
<input type="checkbox" name="0classtimes1" value="8am-10am">8am-10am<br>
<input type="checkbox" name="0classtimes1" value="3pm-6pm">3pm-6pm<br>
Таким образом, у вас есть: первый номер индекс дня недели, второе число является показателем класса указанного дня.
Вы можете захватить переменные в JQuery с чем-то вроде этого:
$("input:checked").each(function(){
var id=$(this).attr("name"); //this gives you the XcasstimesY
var value=$(this).val(); //this gives you the value(time) of the checked value
//here you can get this info into an array, or any other variable you want to use to submit it!
});
При получении этой информации в PHP, при условии, что вы используете POST:
$x=0;
while($x<6) //6 days
$y=0;
while(isset($_POST[$x.'casstimes'.$y])){
echo "On day $x class $y the selected time was".$_POST[$x.'casstimes'.$y];
$y++;
}
$x++;
}
Что вы на самом деле спрашиваете? Получить + магазин? Получить только? Магазин только? Каков ваш текущий код PHP? – AmazingDreams
Хорошо, пожалуйста, в следующий раз придет к нам, если у вас возникнут проблемы с существующим кодом. Мы не здесь, чтобы написать ваш код для вас :) – AmazingDreams
Мне не нужен кто-нибудь, чтобы написать код для меня, я прошу полезный пример: :)), Спасибо всем! – user2632667