我只需要在点击按钮后在我的PHP页面中发送一行表格。 这是我的代码:
$login = $_POST['login'];
$requete = Connexion::query("SELECT id
FROM session
WHERE login='$login'");
$requete = $requete[0][0];
$application = Connexion::query("SELECT titre,cleAk,cleAs,cleCk
FROM cles
WHERE sessionId='$requete'");
echo "<form class='login-form' method='POST'><table class='table'><th>Titre</th><th>Cle ak</th><th>Cle as</th><th>Cle ck</th><tr>";
for($i=0;$i<sizeof($application);$i++)
{
for($j=0;$j<4;$j++)
{
echo "<td><input type='hidden' name='titre' value='".$application[$i][$j]."'>".$application[$i][$j]."</td>";
}
echo "<td><button type='submit' name='api'>Submit</button></td></tr></form>";
}
这个var_dump($ _ POST ['titre']);返回最后一行的最后一个单元格。 你能救我吗?
答案 0 :(得分:0)
您应该传递一个数组来处理带有输入的多个元素。在您的代码中,它应该如下所示:
for($j=0;$j<4;$j++)
{
echo "<td><input type='hidden' name='titre[$j]' value='".$application[$i][$j]."'>".$application[$i][$j]."</td>";
echo "<td><button type='submit' name='api'>Submit</button></td></tr></form>";
}
修改是name ='titre []'。希望这会对你有所帮助
答案 1 :(得分:0)
简要mentioned in the comments of a previous answer,如果你只想提交一行的内容,那么你需要在每一行(表格行)上单独<form>
。您在循环中使用结束</form>
尝试此操作,但是您在循环外部将其打开,导致HTML无效,包含大量关闭</form>
标记,但只有一个开放<form>
标记。
表单输入的另一个问题是它们在第一列name='titre'
之后都被命名为相同但您在表头中分别指定了每列。为了解决这个问题,其他人通过创建数组name='titre[]'
提供了一个不精确的选项,但我认为最好动态命名输入以匹配列键。
我不知道你正在使用什么数据库API,但它似乎只生成一个没有关联键的数字多维数组。可能有一个获取列名的类方法,或者您可以根据SQL查询手动分配它,就像我对数组$cols
<?php
// debugging to show you everything posted
print_r($_POST);
// generate some random data for example
$application[0][0] = "first titre";
$application[0][1] = "first cleAk";
$application[0][2] = "first cleAs";
$application[0][3] = "first cleCk";
$application[1][0] = "second titre";
$application[1][1] = "second cleAk";
$application[1][2] = "second cleAs";
$application[1][3] = "second cleCk";
$application[2][0] = "third titre";
$application[2][1] = "third cleAk";
$application[2][2] = "third cleAs";
$application[2][3] = "third cleCk";
// get the columns for input names
$cols = array('titre','cleAk','cleAs','cleCk');
// semantically complete HTML table
echo "
<table class='table'>
<thead>
<tr><th>Titre</th><th>Cle ak</th><th>Cle as</th><th>Cle ck</th><th>Submit</th></tr>
</thead>
<tbody>
";
for($i=0;$i<sizeof($application);$i++)
{
echo "
<tr>
<form class='login-form' method='POST'>";
for($j=0;$j<sizeof($cols);$j++)
{
echo "
<td><input type='hidden' name='".$cols[$j]."' value='".$application[$i][$j]."'>".$application[$i][$j]."</td>";
}
echo "
<td><button type='submit' name='api'>Submit</button></td>
</form>
</tr>\n";
}
echo "
</tbody>
</table>
";
单击第一行的提交按钮时,此渲染输出结果。 注意您无法在下面的代码段中发布数据,这纯粹是出于静态HTML演示的目的。
Array
(
[titre] => first titre
[cleAk] => first cleAk
[cleAs] => first cleAs
[cleCk] => first cleCk
[api] =>
)
<table class='table'>
<thead>
<tr><th>Titre</th><th>Cle ak</th><th>Cle as</th><th>Cle ck</th><th>Submit</th></tr>
</thead>
<tbody>
<tr>
<form class='login-form' method='POST'>
<td><input type='hidden' name='titre' value='first titre'>first titre</td>
<td><input type='hidden' name='cleAk' value='first cleAk'>first cleAk</td>
<td><input type='hidden' name='cleAs' value='first cleAs'>first cleAs</td>
<td><input type='hidden' name='cleCk' value='first cleCk'>first cleCk</td>
<td><button type='submit' name='api'>Submit</button></td>
</form>
</tr>
<tr>
<form class='login-form' method='POST'>
<td><input type='hidden' name='titre' value='second titre'>second titre</td>
<td><input type='hidden' name='cleAk' value='second cleAk'>second cleAk</td>
<td><input type='hidden' name='cleAs' value='second cleAs'>second cleAs</td>
<td><input type='hidden' name='cleCk' value='second cleCk'>second cleCk</td>
<td><button type='submit' name='api'>Submit</button></td>
</form>
</tr>
<tr>
<form class='login-form' method='POST'>
<td><input type='hidden' name='titre' value='third titre'>third titre</td>
<td><input type='hidden' name='cleAk' value='third cleAk'>third cleAk</td>
<td><input type='hidden' name='cleAs' value='third cleAs'>third cleAs</td>
<td><input type='hidden' name='cleCk' value='third cleCk'>third cleCk</td>
<td><button type='submit' name='api'>Submit</button></td>
</form>
</tr>
</tbody>
</table>