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;}

This works fine when one of the radio buttons is selected.

现在,在表单上,​​我检查了“打印”按钮,然后尝试使用 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 回答