2

同様のことを行うオープンソースプロジェクトをご存知の場合は、ソースコードをご覧ください。私が探しているものの例。次のようなフォームをカスタムビルドします

名前:
住所:
郵便番号:
性別:男性/女性
(このフィールドでは、管理者が論理基準を定義できるようにします。性別が女性の場合はいくつかの質問が表示され、男性の場合は他の質問が表示されます)。顧客が何を作ったのかわからないので、これは動的に行われます。

女性の質問1:(顧客が置く論理構文は次のようになります[gender] = 'female'

では、どうすればそのようなものを実装できますか。PHPであるといいのですが、他の言語でもかまいません。

これが画像です。これはユーザーが入力し、解析する必要があります。 ここに画像の説明を入力してください

4

4 に答える 4

2
$string = "[var_1] = '1' or [var_2] = '2' or [var_3] = '3'";

$pattern = "([\[]+[a-z0-9_]+[\]]+[ ]?+[=]+[ ]?+[\']+[0-9]+[\'])";
preg_match_all($pattern, $string, $string);
var_dump($string);

var_dump()以下を出力します。

array (size=1)
  0 => 
     array (size=3)
       0 => string '[var_1] = '1'' (length=13)
       1 => string '[var_2] = '2'' (length=13)
       2 => string '[var_3] = '3'' (length=13)

パターンは一致[var_1] = '1' [var_1]='1'ます。

于 2012-07-06T09:48:37.097 に答える
1

人々がカスタムフォームを作成できる調査タイプのツールを作成したいようです。私がそれを理解しているなら、あなたはあなたが望むものを得るためにいくつかの部分を構築する必要があります:

  1. フィールドが表示される条件を指定する方法(スクリーンショットを提供しました-これはサンプル/モックアップだと思います)。

  2. 条件を指定するために使用できる標準化された言語。

  3. ユーザーが入力した内容を解釈し、それを標準的な表現に変換するパーサー

  4. その標準表現を質問を表示/非表示にするコードに変換するコンパイラ。

また、いくつかの設計上の決定を行う必要があり、それらは使用できる言語などを決定します。たとえば、「次へ」ボタンがクリックされたときに質問を表示/非表示にするだけで十分な場合は、PHPだけでそれを行うことができます。[次へ]をクリックする前に同じWebページで質問を動的に非表示にする必要がある場合は、javascriptなどを使用する必要があります。

パート3と4については、Javascriptで記述されたレクサーに役立つ回答がいくつかありますか?(javascript)そしてphp用の良いパーサジェネレータは何ですか?(php)これはあなたを正しい方向に向けるかもしれません。

于 2012-07-12T02:31:24.670 に答える
0
<form>
    <!-- some input fields here -->
    <select id="gender" name="gender">
        <option selected="selected" disabled="disabled">Gender?</option>
        <option>Male</option>
        <option>Female</option>
    </select>
</form>

<script language="javascript">
$("#gender").change(function() {
    if($("#gender").val() == "Male")
    {
        // display MALE questions
    }
    else
    {
        // display FEMALE questions
    }
});
</script>

これで、AJAXを使用してPHPファイルを呼び出し、データベースから質問を選択して、JavaScript(element.innerHTML)を使用して表示するか、別のファイルを呼び出してデータベースを使用せずに手動で表示できます。

jsFiddleのようになります。

于 2012-07-05T16:31:09.017 に答える
-1

これが私が過去に使用したjQueryプラグインです。 私の経験からかなりうまくいきます!この手法は「フォームチェーン」と呼ばれます。このソリューションが機能しない場合は、Googleで詳細情報を見つけることができると確信しています。

于 2012-07-05T16:21:48.617 に答える