我有一个表单,通过下拉选择器提供了很多不同的选项。如:
<!--// height //-->
<option value='3918'>5'7"</option>
<option value='3917'>5'8"</option>
<option value='3916'>5'9"</option>
<option value='3915'>5'10"</option>
<!--// weight //-->
<option value='3913'>101-120lbs</option>
<option value='3912'>121-140lbs</option>
<option value='3911'>141-160lbs</option>
<option value='3910'>161-180lbs</option>
我需要将这些数字与另一个允许从url参数过滤的变量相关联。例如,我有一个switch语句:
if (isset($form['height'])){
$hv = $wizard['height'];
$hvr = '4''0"';
$hvd = 0;
switch ( $hv )
{
case 3915 : $hvd= 4294964526; $hvr = '5''10"'; break;
case 3916 : $hvd= 4294964528; $hvr = '5''9"'; break;
case 3917 : $hvd= 4294964529; $hvr = '5''8"'; break;
case 3918 : $hvd= 4294964406; $hvr = '5''7"'; break;
}
}
if (isset($wizard['weight'])){
$wv = $wizard['weight'];
$wvr = '100 lbs';
$wvd = 0;
switch ( $wv )
{
case 3910 : $wvd = 4294964413; $wvr = '161-180 lbs'; break;
case 3911 : $wvd = 4294964421; $wvr = '141-160 lbs'; break;
case 3912 : $wvd = 4294964422; $wvr = '121-140 lbs'; break;
case 3913 : $wvd = 4294964400; $wvr = '121-140 lbs'; break;
}
}
在交换机中生成的变量是需要附加在url参数末尾的变量。
例如,从这个5'7" 150lb提交的正确url应该是这样的:
site.com?height=3918&weight=3911&d=4294964421,4294964406
现在我需要传递这些到一个url参数重定向到表单提交时。
那么首先我想我需要在每个单独的if(isset)
中构建那个字符串?对于高度,我输入
$this->getResponse()->setRedirect( "site.com?height=" . $hv ."&d=" . $hvd );
但是用多个POST值构建这些字符串的最佳方法是什么?如何检查参数中的值是否需要?
或&
?当有多个d值时,我如何检查,
是否必要?
设置一个数组来保存查询字符串变量。
$variables = array();
然后根据需要将变量添加到数组中。
$variables [] = "height=3918";
$variables [] = "weight=3911";
然后构造你的查询字符串,你可以使用内爆,它将与&
"粘合"在一起的变量
$query_string = '';
if( count( $variables ) > 0 )
{
$query_string .= '?'.implode('&', $variables);
}