PHP/HTML:使用从下拉菜单中获取的数据进行分解时遇到问题
PHP/HTML: trouble utilizing Explode with data gotten from pulldown menu
所以我正在尝试使用下拉菜单 (html),该菜单由从数据库中获取的数据填充。这部分工作正常。我得到了显示我需要的所有内容的菜单。问题是我还需要使用这个菜单包含的值来插入 mysqli 语句。这是代码
<form action="processStatisticUpdate.php" method="post">
<table style="margin: 0px auto; border: 0px; border-collapse:separate;">
<tr>
<td style="text-align: right; background: lightblue;">Name (Last, First)</td>
<!-- <td><input type="text" name="name" value="" size="50" maxlength="500"/></td> -->
<td><select name="name_ID" required>
<option value="" selected disabled hidden>Choose player's name here</option>
注意菜单的名称是 name_ID
下一段代码是我实际做出选择的地方。:
echo "<option value=\"$T_ID\">$name</option>";
其中 $T_ID 是从 bind_result 获得的,名称是另外两个这样的值的串联。这个相同的状态将在 while($stmt->fetch()) 语句中循环多次。所以它基本上用选项填充 HTML 的这一部分。
正如我所说,我知道这些部分有效,因为我网页上的下拉菜单确实有效,但出于某种原因,我在接下来的部分遇到了麻烦,它是必需文件的一部分。
require('home_page.php');
// create short variable names
$name = preg_replace("/\t|\R/",' ',$_POST['name_ID']);
$time = preg_replace("/\t|\R/",' ',$_POST['time']);
$points = (int) $_POST['points'];
$assists = (int) $_POST['assists'];
$rebounds = (int) $_POST['rebounds'];
// convert name and time into separate variables to fit into database
list($Lname, $Fname) = explode(",", $name); // <- experiencing issues here
所以我遇到的问题是这个错误代码:
Notice: Undefined offset: 1 in C:\wamp64\www\hmw3\processStatisticUpdate.php on line 10
现在我查了一下,它似乎是因为它收到的值并不总是(也许永远不会)以它期望的格式出现,但我知道这是一个事实,因为它应该被传入来自 $name 是这样制作的。
$name = implode(',',[$Name_last, $Name_first]);
回到主页。我不知道发生了什么或如何解决它。
当传递给 explode 的 $name 不包含逗号时会发生此错误,因此结果数组中的值不足以用于列表赋值。
这可能是因为您的 select 输入会将 selected 选项的 值 发送到 PHP 所以 $_POST['name_ID'] 将包含 $T_ID,而不是您期望的 $name。
所以我正在尝试使用下拉菜单 (html),该菜单由从数据库中获取的数据填充。这部分工作正常。我得到了显示我需要的所有内容的菜单。问题是我还需要使用这个菜单包含的值来插入 mysqli 语句。这是代码
<form action="processStatisticUpdate.php" method="post">
<table style="margin: 0px auto; border: 0px; border-collapse:separate;">
<tr>
<td style="text-align: right; background: lightblue;">Name (Last, First)</td>
<!-- <td><input type="text" name="name" value="" size="50" maxlength="500"/></td> -->
<td><select name="name_ID" required>
<option value="" selected disabled hidden>Choose player's name here</option>
注意菜单的名称是 name_ID
下一段代码是我实际做出选择的地方。:
echo "<option value=\"$T_ID\">$name</option>";
其中 $T_ID 是从 bind_result 获得的,名称是另外两个这样的值的串联。这个相同的状态将在 while($stmt->fetch()) 语句中循环多次。所以它基本上用选项填充 HTML 的这一部分。
正如我所说,我知道这些部分有效,因为我网页上的下拉菜单确实有效,但出于某种原因,我在接下来的部分遇到了麻烦,它是必需文件的一部分。
require('home_page.php');
// create short variable names
$name = preg_replace("/\t|\R/",' ',$_POST['name_ID']);
$time = preg_replace("/\t|\R/",' ',$_POST['time']);
$points = (int) $_POST['points'];
$assists = (int) $_POST['assists'];
$rebounds = (int) $_POST['rebounds'];
// convert name and time into separate variables to fit into database
list($Lname, $Fname) = explode(",", $name); // <- experiencing issues here
所以我遇到的问题是这个错误代码:
Notice: Undefined offset: 1 in C:\wamp64\www\hmw3\processStatisticUpdate.php on line 10
现在我查了一下,它似乎是因为它收到的值并不总是(也许永远不会)以它期望的格式出现,但我知道这是一个事实,因为它应该被传入来自 $name 是这样制作的。
$name = implode(',',[$Name_last, $Name_first]);
回到主页。我不知道发生了什么或如何解决它。
当传递给 explode 的 $name 不包含逗号时会发生此错误,因此结果数组中的值不足以用于列表赋值。
这可能是因为您的 select 输入会将 selected 选项的 值 发送到 PHP 所以 $_POST['name_ID'] 将包含 $T_ID,而不是您期望的 $name。