PHP MySQL在$ _REQUEST中提交动态字段,数组

时间:2014-04-28 22:37:35

标签: php jquery mysql forms

我有一个表单,用户填写请求信息。在表格的一部分中,我有一个"添加更多电话"按钮,动态添加更多文本字段和下拉选项,以便用户可以添加多种类型的电话号码。由于将要提交的电话数量未知,我试图弄清楚如何将所有数据发送到服务器,以便将其插入数据库。

这是我的HTML:

<div class="form-group">
<label class="col-md-4">Tel:</label>
    <div class="col-md-8">
        <input class="form-control required" name="phones[]" maxlength="14" type="text" placeholder="(888) 888-8888">
    </div>
</div>

<div class="form-group">
    <label class="col-md-4">Phone Type:</label>
        <div class="col-md-8">
            <select class="form-control" name="phonetypes[]">
                <option value="0"><b>Choose a phone type</option>
                <option value="1">Main</option>
                <option value="2">Fax</option>
                <option value="3">Mobile/Direct</option>
            </select>                       
        </div>
      </div>

<div class="form-group">
                <label class="col-md-4"></label>
                <div class="col-md-8">
                    <input onclick="addRow(this.form);" type="button" value="Add Another Phone" name="addphone" class="btn btn-info"></input>
                </div>
            </div>

addRow(this.form)会附加一组新字段,您可以在其中输入更多电话号码和电话类型。这是我不确定请求如何获取字段值的地方,因为我们不知道将添加多少手机。

我的请求是:

if(isset($_REQUEST['action'])) {
$phones[] = $_REQUEST['phone'];
foreach($_REQUEST['phone'] as $phone) {
    $phone['phone'];
}
$phonetypes[] = $_REQUEST['phonetype'];
foreach($_REQUEST['phonetype'] as $phonetype) {
    $phone['phonetype'];
}

我绝对不知道从这里开始的地方。任何帮助表示赞赏!

1 个答案:

答案 0 :(得分:0)

每个请求参数只能使用给定名称发送一次(如果它不是数组)。所以你需要调整你的代码

  • 为每个发音类型和电话使用不同的名称
  • 或使用名称phonetype[]标记为数组