1

基本的な論理の質問があります。私の目標は、フォームから選択したチェックボックスを取得し、それらを配列として送信してから、値を関数の配列に一致させることです。選択した入力を関数の配列と一致させる方法を見つけようとしているので、増え続けるオプションをカバーするif {}elseif{}ステートメントのページになってしまうことはありません。

これは、チェックボックスのグループを含むWebフォームの設定方法の例です。「[]」を使用して、選択した値を配列として渡します。

webform:

<input type="checkbox" name="action[]" value="open" checked>open</input>
<input type="checkbox" name="action[]" value="close">close</input>
<input type="checkbox" name="action[]" value="lift">lift</input>
<input type="checkbox" name="action[]" value="drop">drop</input>
<input type="checkbox" name="action[]" value="destroy">destroy</input>
<input type="checkbox" name="action[]" value="create">create</input>

phpポストハンドラー

$o = open();
$c = create();
$l = lift();
$d = drop();
$de = destroy();
$cr = create();

$mysvcs = array($o, $c, $l, $d, $de, $cr);


//stuck here
$action = $_POST['action'];
$postsvc = implode(",", $action );  

$req = strstr($mysvcs, $postsvc);

?>

私はおそらくこれを完全に間違った方法で行っていると感じており、コミュニティからのガイダンスをいただければ幸いです。

どうもありがとう

-AussiedeviL

4

1 に答える 1

0

チェックされた関数を実行したい場合は、次のコードが機能するはずです。

function open() {} //your open declaration 
function close() {} //your close declaration 
function lift() {} //your lift declaration 
//all other declarations

foreach($_POST['action'] as $a){
    $a();//execute matching function 
}
于 2013-03-17T13:25:39.200 に答える