啊!有什么想法吗?
有一个跟踪给定时间间隔内用户活动的表单。每个时间间隔可以具有用于"位置"&多个"活动"。因此,表单具有可变数量的时间间隔和每个间隔的活动数量。
我如何在HTML中设置它以平滑处理PHP?编辑:可以通过jQuery添加其他间隔和活动。
我最初的想法很复杂,所以有人有更好的想法吗?
<!--Interval 1 with 4 activities-->
<input type="text" name="interval[]" />
<input type="text" name="location[]" />
<input type="text" name="activity[]" />
<input type="text" name="activity[]" />
<input type="text" name="activity[]" />
<input type="text" name="activity[]" />
<!--Interval 2 with 2 activities-->
<input type="text" name="interval[]" />
<input type="text" name="location[]" />
<input type="text" name="activity[]" />
<input type="text" name="activity[]" />
这在服务器端是一场噩梦。
您可能需要按位置/间隔隔离活动。解决方案是为每个间隔使用一个索引,这涉及到更改为每个间隔创建新html元素的方式。
因此得到的代码是:
<!--Interval 1 with 4 activities-->
<input type="text" name="interval[1][]" />
<input type="text" name="location[1][]" />
<input type="text" name="activity[1][]" />
<input type="text" name="activity[1][]" />
<input type="text" name="activity[1][]" />
<input type="text" name="activity[1][]" />
<!--Interval 2 with 2 activities-->
<input type="text" name="interval[2][]" />
<input type="text" name="location[2][]" />
<input type="text" name="activity[2][]" />
<input type="text" name="activity[2][]" />
但它并不像那样流畅
<!--Interval 1 with 4 activities-->
<input type="text" name="interval[1][interval]" value="interval id" /> // optional
<input type="text" name="interval[1][location]" value="location" />
<input type="text" name="interval[1][activity][]" value="activity" />
<input type="text" name="interval[1][activity][]" value="activity" />
<input type="text" name="interval[1][activity][]" value="activity" />
<input type="text" name="interval[1][activity][]" value="activity" />
<!--Interval 2 with 2 activities-->
<input type="text" name="interval[2][interval]" value="interval id" /> // optional
<input type="text" name="interval[2][location]" value="location" />
<input type="text" name="interval[2][activity][]" value="activity" />
<input type="text" name="interval[2][activity][]" value="activity" />
这将为您提供一个很好的树(以数组的形式)来进行迭代。
为了做到这一点,您需要一个javascript函数来跟踪当前间隔索引,并使用该索引对间隔数组进行排序。
服务器端您所要做的就是(在POST方法的情况下):
foreach ( $_POST['interval'] as $k => $interval ) {
echo $interval['interval'];
echo $interval['location'];
foreach ( $interval['activity'] as $id => $activity )
echo $activity;
}