0

基本的に、入力内容に基づいてデータをデータベースに保存する PHP フォームを作成したいのですが、これはもちろん基本的なことです。

ただし、1 つの癖があります。

この php フォームは ID ベースである必要があります - リンクが与えられます。

mywebsite.com/form.php=id446のようなものは、のようなものとはかなり異なるフォームを生成するとしましょうmywebsite.com/form.php=id447

両方のフォームの違いは約 3 ~ 4 フォーム フィールド (表示されるかどうかに関係なく) で、残りは同じです。

form446.php今、私はこれを力ずくで作ることがform447.phpできました.

これを可能にする機能はありますか?

また、美的で目を楽しませる php フォームを作成するためのテンプレートはありますか?

ありがとう、xoxo

4

4 に答える 4

1

あなたの質問は私には少し漠然としています。たとえば、446 と 447 の違いは何ですか? それは完全にランダムである必要がありますか?または、直接利用できる一連のフィールド/フォームがありますか?

于 2010-12-27T11:17:50.133 に答える
0

コードが正しく実行されない可能性があり、チェックしていませんが、いくつかのアイデアが得られます。

$formTypes = array();
$formTypes["type1"] = array("var1" => "string", "var2" => "textarea");
$formTypes["type2"] = array("var1" => "string");
$forms = array();
$forms["446"] = "type1";
$forms["447"] = "type2";

foreach ($formTypes[$id] as $varname => $vartype) {
   switch ($vartype){
      case "string":
         print "<input name='" . $varname . "'>";
         break;
      case "textarea":
         print "<textarea name='" . $varname . "'></textarea>";
         break;
   }
}
于 2010-12-27T11:24:09.073 に答える
0

単一の form.php を使用できますが、コード内の if 構造を使用して、個々の部分を含めたり除外したりできます。次のようなものです。

<form action="doForm" method="post">
    Input 1: <input type="text" id="input1"/> 
    Input 2: <input type="text" id="input1"/>

    <?php
        //This field only appears if you hit the url form.php?formid=123
        if($_GET['formid'] == 123):
        echo 'Input 3: <input type="text" id="input3"/>';
        endif;
    ?>
    <input type="submit" id="submit" value="submit" />
</form>

サーバー側のスクリプト言語である PHP は、きれいで使いやすいフォームを作成するために必要なものではありません。見栄えの良いフォームの場合は、代わりに素敵な HTML / CSS と JavaScript が必要になるでしょう。「使用可能なフォーム」をグーグルで検索し、次の jQuery プラグインのリストなどをチェックして、アイデアを見つけてください。 -フォーム要素

--- 編集 ---- 独自の要素を持つ約 10000 の異なるフォームも必要だと思いますか? (あなた自身の正気のために!) そうではないことを願っています。それを少しでも減らすことができる場合は、ID だけでなく、formType を url パラメーターとして追加してみてください。そうすれば、代わりにそれらをグループで解析できます。

正直なところ、これはとにかくデータベースを使用するような仕事です。各フォームの ID 番号と、関連するメタデータ用の別のフィールドを保持するテーブルを設定します (おそらく配列またはシリアル化された配列)。その後、アプリケーションでそれを抽出できますが、formId を唯一の url パラメーターとして使用することもできます。あなたの他のコメントから、保存されたデータを保持するテーブルは formId 固有ではないので、おそらくうまくいくはずです。

于 2010-12-27T11:26:30.297 に答える
0

ハロー

これを機能させるには、物事を適切に考えなければなりません。データベース部分から始めるべきです。

結論として、PHP で各 ID をハードコーディングすることはできません。

これにはデータベースを使用する必要があります。

議論のためのいくつかの仮定: 変化する形式は、質問 1、質問 2、質問 3 と名付けられています

最初に、ID ごとに 1 つの行と、その ID に関する追加情報を含むテーブルを作成する必要があります。

次に、私が今見ているように、それを行う最も簡単な方法は、非常に醜く悪いデータベース設計です。質問ごとにこの id テーブルに 1 つのフィールドを追加すると、テーブルは次のようになります。

id|question1|question2|question3
446|1|1|0
447|0|1|1

次に、php で「SELECT * from id_table where id="||id||";」を作成するだけです。

ネットを検索しないとphpの構文はわかりませんが、IDにその質問が必要かどうかを疑似コードで確認するだけです。

    if(question1)
    {
      the question 1
    }

   if(question2)
    {
      the question 2
    }

HTH ニクラス

于 2010-12-29T08:13:54.037 に答える