如何从URL获取数组参数?
问题描述:
我有一个需要4个输入的表单。如果他们错过了,他们会被传入网址。如何从URL获取数组参数?
如果所有4缺少它会看起来像:
?required[0]=field_name&required[1]=field_email&required[2]=field_number&required[3]=field_desc
如果第一个field_name
丢失,阵列将被向前推一个,所以field_email
将[0]。这意味着数组总是处于0,1,2,3的顺序。
我想知道的是如何检索信息,以便我可以在丢失的输入周围放置红色边框?我需要的是这样的:
while ($i=0,$i<=3,$i++) {
do ($requiredArray[i] == 'field_email') {
echo '<script type="text/javascript">$("#name)".css("border","1px solid #ff0000");</script>';
} while();
endwhile;
}
答
你也可以在PHP中使用array_search
如下:
array_search("field_name",$_GET['required']);
如果该值大于或等于零,那么你可以做处理。
一样,你可以拥有所有的值在数组变量说$required_array
,你可以使用foreach
循环像如下:
foreach($required_array as $val){
if(!(array_search($val,$_GET['required'])>=0)){
echo '<script type="text/javascript">$("#'.$val.')".css("border","1px solid #ff0000");</script>';
}
}
答
看看使用jquery的表单验证它会更简单,更具扩展性。
答
下面是针对瓶坯在服务器端验证表单的例子:
<?php
$first_name = $_GET['fname'];
$last_name = $_GET['lname'];
$email = $_GET['email'];
$submit = $_GET['submit'];
if(empty($first_name) && !empty($submit)){
$missing_fname = 1;
}
if(empty($last_name) && !empty($submit)){
$missing_lname = 1;
}
if(empty($email) && !empty($submit)){
$missing_email = 1;
}
?>
<table><form action="" method="get">
<tr><td>Enter First Name:</td><td><input type="text" id="fname" name="fname" value="<?php echo $first_name; ?>" ></td><td><?php if($missing_fname == 1) echo "<font color='red'>This field is Mandatory!</font>" ?></td></tr>
<tr><td>Enter Last Name:</td><td><input type="text" id="lname" name="lname" value="<?php echo $last_name; ?>" ></td><td><?php if($missing_lname == 1) echo "<font color='red'>This field is Mandatory!</font>" ?></td></tr>
<tr><td>Enter email:</td><td><input type="text" id="email" name="email" value="<?php echo $email; ?>"></td><td><?php if($missing_email == 1) echo "<font color='red'>This field is Mandatory!</font>" ?></td></tr>
<tr><td></td><td><input type="submit" value="submit" name="submit" id="submit"></td></tr>
</form>
</table>
你可能想要在JS/jQuery中做这些验证,而不是在服务器端。 – alfasin 2012-07-11 05:03:56
@alfasin是的,有人向我展示了jquery验证作为答案之一,下次我肯定会使用它。但我真的想完成现在的发展。 – muudless 2012-07-11 06:13:23
它现在的方式无法工作。如果你想在服务器端执行验证,你必须建立一个表单,将其提交给服务器端,它将接受它(合法值)或在未通过的字段旁边显示错误消息验证 – alfasin 2012-07-11 06:17:42