0

我得到了这个 2 数组的形式来处理。但是,我只能设法从其中一个数组中获取输出。示例如下:

<inputs id="location" type="text" name="data[]" value=""/>
<input id="shipval" type="text" name="data[][id]" value=""/>

在 PHP 部分如下:

foreach ($_POST ["data"] as $id => $subs) {       

            foreach ($subs as $key=>$sub) {

                $subcategory = $sub;

                if($subs['id']=="$subcategory"){
                    echo $sql = " insert into x(kodLebuhraya,kodSeksyen) values ('".$subs['id']."','".$sub."')";echo "<br>";    
                }else{
                    //echo "hi2";
                    echo $sql = " insert into x(kodLebuhraya,kodSeksyen) values ('".$subs['id']."','".$sub."')";echo "<br>";
                }

            }   

        }

这意味着一艘船的一个位置。我有多个位置和船舶输入字段。各位大佬能指点一下哪一个是错的。先谢谢了。

4

5 回答 5

5

所以基本上你需要成对传递位置和船舶。

在 HTML 中试试这个结构:

<label>Set One</label>
<input class="location" type="text" name="data[location][]" value=""/>
<input class="shipval" type="text" name="data[shipval][]" value=""/>
<label>Set Two</label>
<input class="location" type="text" name="data[location][]" value=""/>
<input class="shipval" type="text" name="data[shipval][]" value=""/>
<label>Set Three</label>
<input class="location" type="text" name="data[location][]" value=""/>
<input class="shipval" type="text" name="data[shipval][]" value=""/>

而这个PHP代码:

  foreach ($_POST['data']['location'] as $key => $location) {       
        $shipVal = $_POST['data']['shipval'][$key];

        //now you have a pair of $location and $shipVal
        echo $location.' : '.$shipVal.'<hr>';

    }

避免在未命名的索引之后使用命名索引。<input name="array[][named]" />如果一对字段之一为空,您可能会丢失字段顺序。

于 2012-10-02T15:06:36.450 回答
0

你有<inputs id="location"而不是<input id="location"

另外...foreach ($subs as $key => $sub) {会抛出一个错误,<inputs id="location" type="text" name="data[]" value=""/>因为它不是多维的。所以尝试将其更改为<inputs id="location" type="text" name="data[][]" value=""/>

于 2012-10-02T15:00:01.440 回答
0

对于多选,名称必须以方括号结尾,因此您需要更改shipval输入的名称

于 2012-10-02T15:01:04.883 回答
0

首先你已经写了inputs而不是input.

其次,这一行:

foreach ($subs as $key=>$sub) {

会将每个变量视为一个数组,但该位置不是一个数组。

于 2012-10-02T15:04:31.270 回答
0

我没有看到需要循环,因为您只想访问$_POST['data'][0]$_POST['data'][1]['id']

我还注意到你的 SQL 是重复的,所以你可以试试 你可以试试

$sql = "INSERT INTO  x(`kodLebuhraya`,`kodSeksyen`) VALUES ('%s','%s')" ;
printf($sql,mysqli_real_escape_string($_POST['data'][0]),mysqli_real_escape_string($_POST['data'][1]['id']));

输出

INSERT INTO x(`kodLebuhraya`,`kodSeksyen`) VALUES ('A','B')

使用的表格

<form method="POST">
    A : <input id="location" type="text" name="data[]" value="" /> 
    B : <input id="shipval" type="text" name="data[][id]" value="" /> 
    <input  id="shipval" type="submit" name="submit" value="Submit" />
</form>
于 2012-10-02T15:07:36.823 回答