2

私は Web 開発が初めてです。Joomla の Fabrik Form のラジオボタンで行われた選択に基づいて、異なる処理を行う必要があります。

フォームが POST を使用して送信されていることを確認しました

if ($_SERVER['REQUEST_METHOD'] == 'POST') {return true;} else {return false;}   

次を使用してラジオボタンが選択されていることを確認しました。

if (isset($_POST['file_request___Action'])) {return true;} else {return false;}

これは、ラジオ ボタンの 1 つが選択されている場合に正常に機能します。

さて、フォームで「印刷」ボタンをチェックしてから、PHPを使用して検証しようとしました:

switch($_POST['file_request___Action']) 
{
case "Save":           
    return false;            
    break;        
case "Print":           
    return true;            
    break;       
default:           
    return false;   
}

これは機能しません。[印刷] ボタンがチェックされていても、false が返されます。

これが正しいかどうかはわかりませんが、 switch($_POST['file_request___Action[]']) も使用してみました

私が間違っているところを指摘できますか?これらのラジオ ボタンにアクセスするにはどうすればよいですか?

<div class="fabrikElement file_request___Action">
     <div class="fabrikSubElementContainer" id="file_request___Action">
        <div class="fabrik_subelement" style="float:left;width:23%">
            <label>
            <span>Save</span>
            <input class="fabrikinput" type="radio" name="file_request___Action[]" value="Save" checked="checked"> 
             </label>
        </div> <!-- end row div -->
        <div class="fabrik_subelement" style="float:left;width:23%">
            <label>
            <span>Print</span>
            <input class="fabrikinput" type="radio" name="file_request___Action[]" value="Print">
            </label>
        </div> <!-- end row div -->
    </div>
</div>
4

1 に答える 1

1

Fabrik では、フォーム データ ポスト オブジェクトを使用してすべてのフォーム データにアクセスできます。ここでそれに関する情報を参照してください:

http://fabrikar.com/forums/index.php?wiki/php-form-plugin/#accessing-form-data

FormPHP プラグインを使用し、ラジオ ボタンで簡単なチェックを行う必要があります。

$checkbox = $formModel->formData->tbl_name___element_name

注: これの var_dump を実行して、完全な / 適切な要素名を取得します。配列になっている可能性があり、配列データを取得するために $checkbox[0] を実行する必要さえあるかもしれません。また、送信された生データを取得しやすくするために、要素名の末尾に _raw を追加する必要がある場合もあります。

そこから、スイッチを通過できるはずです。これを行う別の方法として、Fabrik の自動置換を使用する方法があります (FormPHP プラグインを起動する場所は保留中です)。

$radio1 = (int)"{listname___radio1_raw}";
于 2014-02-09T22:58:59.000 に答える