单个提交中的多个值

时间:2012-07-25 01:20:13

标签: mysql

我一直在搜索谷歌找到代码,但我找不到它。我想做的很简单,但我不是php专家。

我想在一次按下提交按钮时插入多个城市的名字(如果可能的话)

我创建了一个包含2个表的数据库:'cities'和'states' 我填写了状态表

所以我需要两个字段或框,一个用于状态,这是下拉“选择”框,已填充状态名称,从数据库中提取,

另一个是城市字段,其中包含文本类型字段(type =“text”)。

我希望能够键入多个城市名称,可能用','逗号分隔, 只需按一下提交按钮,所有值都将被插入到mysql cities表中并继续进入下一个状态。

我知道我需要创建某种循环,但我不知道该怎么做。

2 个答案:

答案 0 :(得分:0)

首先,您可以使用以下格式创建输入:

<input type="text" name="cities"/>
然后你输入:纽约,新泽西,旧金山,丹佛等等。

然后在接收数据的.php文件上(我猜它是一个$ _POST变量),所以$ _POST ['cities']然后,你拆分它并循环:

// split the values by comma
$_POST['cities'] = explode(',',$_POST['cities']);

// loop the values
foreach($_POST['cities'] as $city) {

    // trim (delete white space at the end and start for safety)
    $city = trim($city);

    mysql_query("insert into `cities` ('city','state') values ('".$city.','".$_POST['state']."');

}

完成了。

答案 1 :(得分:0)

* index.php(html):

<html>
    <body>
        <form action="save.php" method="POST">
            <input type="text" name ="cities" value="">
            <input type="text" name ="state" value="">

            <input type="submit">
        </form>
     </body>

* save.php:

<?php
/* -------include you db connection here ----*/

     if(isset($_POST['çities']) && $_POST['çities'] !='' && isset($_POST['state']) &&  $_POST['state'] !=''){

             $cities =  explode (',', $_POST['çities']);
             $n = count($cities);
             for($i=0;$i<$n;$i++){
             //Insert data
                    mysql_query("insert into `cities` (city,state) values  ('".$cities[$i]."','".$_POST['state']."') or die(mysql_error());

              }

}

&GT;