我有一个带有文本输入字段的html表单。我想知道如何识别表单中的特定输入。示例输入命令:
<input type="text" name="action" value="bookmark http://google.com" />
<?php
if ($command == "goto"):
// go to website X
elseif ($command == "bookmark"):
// bookmark website X
else:
// something else
endif;
?>
答案 0 :(得分:2)
我认为最简单的方法是将字符串拆分为第一个空格,将其分隔为命令和该命令的参数。如果需要,explode()的“2”参数允许在$ param中使用空格。
$input = explode(' ', $_POST['action'], 2);
$command = $input[0];
$param = $input[1];
switch ($command) {
case 'goto':
// go to website $param
break;
case 'bookmark':
// bookmark website $param
break;
default:
// unknown command
}
答案 1 :(得分:0)
试试这个:
$request = $_POST['action'];
$split = explode(' ',$request,2);
$command = $split[0];
if(!isset($split[1])){
//no url
die;
}
$url = $split[1];
if($command == "goto"){
header('location: '.$url);
die;
}elseif($command == "bookmark"){
header('location: '.$url);
die;
}else{
echo 'No Commands :(';
}
使用$_POST
或$_GET
来检索请求数据。即:$_GET['action']
设置标题位置以重定向浏览器。 die;
或exit;
用于终止和输出当前脚本
答案 2 :(得分:0)
$aAct = explode(' ', $_POST['action');
if(is_array($aAct)) {
switch($aAct[0]) {
case 'bookmark':
/* do action e.g. header('Location: ' . $aAct[1]); */
break;
}
}
为您要指定的每个操作创建一个case / break组合..
答案 3 :(得分:0)
这样的东西?:
//get the command from your value
$command = current(explode(" ", $_POST['action']));
//get the url from your value
$url = next(explode(" ", $_POST['action']));
正如karim79所述,处理输入的开关更合适。
switch($command) {
case 'goto':
// do stuff with $url;
break;
case 'bookmark':
// do stuff with $url;
break;
default: // do something default;
}
希望有所帮助