在我的HTML代码中,我有一个表但最初没有加载数据行,只有标题和列标签。单击按钮后,将根据SQL语句中从数据库中选择的行数将多个行加载到此表中。在这种情况下,如果我的团队在数据库中有七个注册的玩家,我的表将显示七行(通过PHP echo语句)。在每一行中,我都有一个包含玩家姓名和文本输入框的复选框。
这是在点击结果后按钮后添加行的jQuery:
$("#post-result").click(function(){
$("#post-result").hide();
$("#confirm-result").show();
$("#cancel").show();
$("#home-player-count").show();
$("#home-score").html("");
$("#away-score").html("");
$("#stats-home").after(<?php
echo "\"";
$i = 0;
$sql2 = mysqli_query($link, "SELECT * FROM user_accounts WHERE ps4_club= '" . $myclub . "'");
while ($row = mysqli_fetch_array($sql2, MYSQLI_ASSOC))
{
$i++;
echo "
". $row['username'] ."";echo "
. ";echo "
";echo "
";echo "
/ ";}
echo "\"";
?>)
$_SESSION["match_id"] = $id;
$_SESSION["player_count"] = $i;
$_SESSION["team"] = $team;
?>
$(&#34; #stats-home&#34;)。之后是添加行的地方。
我遇到的问题是我试图将这些数据从表格输入到我的数据库中。这是我点击表单的确认结果按钮后加载的PHP代码:
include "../config.php";
if (isset($_POST["confirm_result"]))
{
session_start();
for ($i = 1; $i <= $_SESSION["player_count"]; $i++)
{
$sql = $link->prepare("INSERT INTO ps4_apl_1_stats (match_id, team, name, rating, goals, assists, tackles_won, tackles_made)
VALUES (?, ?, ?, ?, ?, ?, ?, ?)");
$sql->bind_param("issiiiii", $match_id, $team, $name, $rating, $goals, $assists, $tackles_won, $tackles_made);
$match_id = $_SESSION["match_id"];
$team = mysqli_real_escape_string($link, $_SESSION["team"]);
$name = "test_".$i."_player";
$rating = $_POST["home_player_".$i."_rating_1"];
$goals = $_POST["home_player_".$i."_goals"];
$assists = $_POST["home_player_".$i."_assists"];
$tackles_won = $_POST["home_player_".$i."_tackles_won"];
$tackles_made = $_POST["home_player_".$i."_tackles_made"];
$sql->execute();
$sql->free_result();
}
header("Location: ../match.php?id=".$_SESSION['match_id']);
}
else
{
header("Location: ../match.php?id=".$_SESSION['match_id']);
}
?>
这段代码的作用是通过递增$ i变量来循环遍历表中的每一行。在每次迭代中,它将输入框中的数据放入变量中,然后将变量放入准备好的SQL语句中。每行的输入框都有名称,这些名称由它们的行号编号,例如:
第1行:home_player_1_goals,home_player_1_assists
第2行:home_player_2_goals,home_player_2_assists
第3行:home_player_3_goals,home_player_3_assists
当我尝试提交此表单时,我收到了很多&#34; Unidentified index&#34;通知,像这样:
注意:未定义的索引:第20行的C:\ Apache24 \ htdocs \ script \ match_post.php中的home_player_1_goals
由于某种原因,它没有找到通过echo语句动态插入页面的任何输入框的POST变量。找到$ _POST [&#34; confirm_result&#34;]是没有问题的,因为该输入框在开头就被加载到页面中。
我如何解决这个问题?它几乎无法识别通过echo语句加载的任何输入框。
我还使用print_r:转储$ SESSION和$ POST变量
print_r($ _ SESSION):数组([email] =&gt; my_email@hotmail.com [userid] =&gt; 43 [xbox_club] =&gt; [ps4_club] =&gt; Wrecking Crew [match_id] =&gt; 3 [player_count] =&gt; 7 [团队] =&gt;主页)
print_r($ _ POST):数组([confirm_result] =&gt;确认结果)
它只显示最初加载到页面上的confirm_result按钮。
我还有另一个问题:
我如何根据是否检查来跳过插入行?在每一行中我都有一个复选框。禁用此复选框后,将禁用所有行输入框。跳过这一行的最佳方法是什么?目前,无论输入框是否被禁用,我的代码都会遍历每一行并输入数据。
提前致谢!
UPDATE - 这是在&#34;后期结果&#34;之后生成的单行。单击按钮:
Syrian2nv . /