我正在编写一个过滤函数,它将“Delivery_Date”字段作为GET数组传递给PHP,以从数据库中请求数据。
在查询字符串中转换后,我很难确定如何访问GET数组变量“Delivery_Date [> =]”。我希望在提交表单后使用字段名称将其作为默认值重新调用。
提交后,GET变量作为数组$ _GET ['Delivery_Date'] ['> =']进行访问,但我的字段名称是字符串,“Delivery_Date [> =]”,当发送到getDefault函数时因此,不要拉$ _GET ['Delivery_Date'] ['> =']。
如何使用字段名称将全局$ _GET数组值调用到指定为数组的字段名称的value属性中?
<?php
function getDefault($default, $name) {
if (isset($_GET[$name]) && is_array($_GET[$name])) {
foreach ($_GET[$name] AS $varkey=>$var) {
$default = ($var!="") ? $var : $default;
}
} else {
$default = isset($_GET[$name]) ? $_GET[$name] : $default;
}
return $default;
}
?>
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="get" id="filter" >
<label for="contact">Contact Name</label>
<input id="contact" name="Contact_Name" type="text" value= "<?php echo getDefault("Search by name","Contact_Name"); ?>">
<label for="from_date">Date From</label>
<input id="from_date" name="Delivery_Date[>=]" type="text" value= "<?php echo getDefault(date("Y-m-d"),"Delivery_Date[>=]"); ?>">
<label for="to_date">Date To</label>
<input id="to_date" name="Delivery_Date[<=]" type="text" value= "<?php echo getDefault(date("Y-m-d"),"Delivery_Date[<=]"); ?>">
<input type="submit">
</form>
答案 0 :(得分:0)
使用以下功能试用getDefault(date("Y-m-d"),"Delivery_Date", ">=")
:
<?php
function getDefault($default, $name, $subname=null) {
if (isset($subname)) {
$default = isset($_GET[$name]) && isset($_GET[$name][$subname]) ? $_GET[$name][$subname] : $default;
} else {
$default = isset($_GET[$name]) ? $_GET[$name] : $default;
}
return $default;
}
?>
另外,不要忘记使用htmlspecialchars清理输出以防止XSS。