将下拉表单转换为可选按钮

时间:2015-12-10 14:12:48

标签: php jquery sql

我有以下下拉表单:

<select value="<?php echo $salesman; ?>" class="form-control" name="data[Invoice][salesman]" placeholder="Salesman">
    <option value="Unset" <?= ($invoice['Invoice']['salesman']) == 'Unset' ? 'selected' : '' ?>>Please Choose</option>
    <option value="Person 1" <?= ($invoice['Invoice']['salesman']) == 'Person 1' ? 'selected' : '' ?>>Person 1</option>
    <option value="Person 2" <?= ($invoice['Invoice']['salesman']) == 'Person 2' ? 'selected' : '' ?>>Person 2</option>
    <option value="Person 3" <?= ($invoice['Invoice']['salesman']) == 'Person 3' ? 'selected' : '' ?>>Person 3</option>
    <option value="None" <?= ($invoice['Invoice']['salesman']) == 'None' ? 'selected' : '' ?>>None</option>
</select>   

和解析它的SQL代码(片段):

$salesman = mysqli_real_escape_string( $this->_con, trim( $data['data']['Invoice']['salesman'] ) );

如何将下拉列表转换为图片,就像我上传的图片一样?最终结果将允许用户点击多个人,并在查看页面时存储并正确检索该信息。所选人员将使用自定义图像突出显示其按钮。

Sample Image

1 个答案:

答案 0 :(得分:1)

为了让您的表单处理多个值而不仅仅是salesman的一个值,您需要传递一个值数组

(例如$invoice['Invoice']['salespeople'] = ['Person 1', 'Person 2'];

在这种情况下,您可以使用以下复选框表示表单上的数据:

<label>Person 1</label><input type="checkbox" name="salespeople[]" value="Person 1" 
    <?= in_array('Person 1', $invoice['Invoice']['salespeople']) ? 'checked' : '' ?>>

<label>Person 2</label><input type="checkbox" name="salespeople[]" value="Person 2" 
    <?= in_array('Person 2', $invoice['Invoice']['salespeople']) ? 'checked' : '' ?>>

<label>Person 3</label><input type="checkbox" name="salespeople[]" value="Person 3" 
    <?= in_array('Person 3', $invoice['Invoice']['salespeople']) ? 'checked' : '' ?>>

<label>None</label><input type="checkbox" name="salespeople[]" value="None" 
    <?= empty($invoice['Invoice']['salespeople']) ? 'checked' : '' ?>>

然后,当您提交表单时,处理提交的脚本将获得一系列销售人员,而不是一个销售人员。

可以使用CSS将标签+复选框设置为切换按钮的样式;你可以谷歌搜索各种各样的例子。

相关问题