PHP帖子中的td内容为一个for

时间:2016-06-07 14:45:50

标签: php forms

我只需要在点击按钮后在我的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']);返回最后一行的最后一个单元格。 你能救我吗?

2 个答案:

答案 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>