0

オンライン実験用の複数ページのフォームを作成しています。これには、さまざまなバージョンの質問をさまざまなユーザーに表示することが含まれます。ページファイルのさまざまな組み合わせを組み込んだページシーケンスを作成する簡単な方法はありますか?私がこれらのファイルを持っているとしましょう:1A.phpそして1B.php(1ページ); 2A.phpおよび2B.php(2ページ); 、、、、、 (3ページ)など3A.php、独自のナビゲーションパスのセットを作成するにはどうすればよいですか?たとえば、1つは[ -> -> -> ]で、もう1つは[ -> - > - >]です。3B.php3C.php3D.php3E.php3F.php1A.php2B.php3E.php4B.php1A.php2B.php3A.php4C.php]。(私はPHPを初めて使用するので、これが最も洗練された方法ではないかもしれませんが、何かが機能する限りは満足​​しています。)各ページには<input type="submit">ボタンがあり、個別のPHPファイルを介してデータベースに接続します。

アイデアは、ユーザーをスタートページから(12)プリセットシーケンスの1つにランダムにリダイレクトすることです。

助言がありますか?

編集:ここでの目的は、考えられるすべての質問のセットを生成することではありません。明確にするために、目的は、可能なページの組み合わせのうち12を指定することです(実験計画に関係する理由から)。アンケートにはスタートページがありますが、ここから回答者を12の支店の1つにリダイレクトしたいと思います。

4

4 に答える 4

0
$questionaires = array('1a','1b',...,'2a','2b',...,'3a'...);//list all those filenames here

function generate_questionaire(&$array)
{
    $key = rand(0, count($array);
    unset($array[$key]);
    return $key;
}

so call that function every time you want to include a `php` file thus:
<?php
$questionNum = generate_questionaire($questionauires);
include_once($questionNum.'.php');
?>
于 2013-02-27T09:16:44.000 に答える
0

選択に基づいて、さまざまなコンテンツをページにロードしたいですか? はいの場合は、次のようにします。

<a href="1A.php?id=1B">1B</a>
if(isset($_GET["id"])){

//loads page 1A.php?id=1B with whatever html or php you want to load

}
else {

//loads page 1A.php ,with default content

}

必要な数のリンクを追加し、すべてのコンテンツを 1 つのページにロードできますが、2 つ以上のページがある場合、またはデータベースからコンテンツをロードする場合は、1 つの巨大なスイッチに各ページのコードを記述する必要があります (これは、私はお勧め)。

于 2013-02-27T09:02:28.517 に答える
0

フォームの各ページに、次のように step という隠しフィールドがあります

<input type="hidden" name="step" value="1"> // this is for step 1.. value="2" for step 2 etc

リダイレクトの前に処理ファイルで次のことを行います

$nextstep = (int)$_POST['step'];
$nextstep++;
$optionsarray = array('A','B','C','D','E','F','G','H','I','J','K','L');
header('Location: ' . $nextstep . $optionsarray[rand(0,11)] . '.php');

これにより、オプションの 1 つがランダムに選択されますが、次のステップ番号 (1、2、3 など) が割り当てられます。

私はこれがあなたが求めているものだと思います..

編集:これはどうですか

$nextstep = (int)$_POST['step'];
$nextstep++;
$stepsarray = array('1'=>5,'2'=>6,'3'=>2,'4'=>6); // '1'=>5 (step 1, 5 posibilities)  '2'=>6 (step 2, 6 posibilities) etc..
$optionsarray = array('A','B','C','D','E','F','G','H','I','J','K','L');
header('Location: ' . $nextstep . $optionsarray[rand(0,$stepsarray[$nextstep])] . '.php');

したがって、これには配列が呼び出され$stepsarrayます-これは、各ステップの可能性の数を示します..そして、randまだ使用してURLが生成されますが、可能な最大数は次のステップの最大可能性です..それはあなたにとってよりうまくいくかもしれませんが、セットアップ方法に満足している場合は、心配しないでください :-)

于 2013-02-27T11:25:56.753 に答える
0

This should do the trick: http://pyrus.sourceforge.net/Math_Combinatorics.html from the answer https://stackoverflow.com/a/10466745/1481489 You're talking about permutations by the way: Permutations - all possible sets of numbers

于 2013-02-27T09:46:12.500 に答える