我在将编辑发布到可变大小的表时遇到问题。我有一系列行,每行有两个文本框和一个复选框。这些框预先填充了当前值。当用户编辑一个然后单击表格底部的“提交”时,目标是将编辑的行发送到远程数据库,在那里它们将被更改。这是我的表格代码:
<?php
//I set up a socket and send a request for data here
$sent = socket_sendto($socket, $request, strlen($request), 0 , $addr, $port);
if($sent !== FALSE){
$message = '';
$next = '';
//bytes to read
while($next = socket_read($socket, 2000)){
//custom terminate char sequence
if($next === $term){
//get out of if and while
break 2;
}else{ $message .= $next;}
}
$fbt = json_decode($message,true);
$tableCount = count($fbt);
if($tableCount == 0){
//notify the user
echo "No feedback entries have been defined. Please add some.";
}else{
//display the table
echo "<form name=\"fb\" action=\"fbedit_submit.php\" method=\"post\"><table id=\"opt\"><tbody>";
for($i=0;$i<$tableCount;$i++){
//echo the rows
echo "<tr class=\"optr\"><td class =\"optid\">".
"Code: <input name=\"id[".$i."]\" type=\"text\" width=\"20px\" value=\"".$fbt[$i]["id"]."\">".
"</td><td class=\"optcode\">".
"Description: <input name=\"desc[".$i."]\" type=\"text\" value=\"".$fbt[$i]["code"]."\">".
"</td><td class=\"optactive\">".
"Active: <input name=\"active[".$i."]\" type=\"checkbox\"";
if($fbt[$i]["active"] == 1){
echo "checked=\"checked\">";
} else{
echo ">";
}
//finish lines
echo "</td></tr>";
}
echo "</tbody></table>
<br><input name=\"fbmodbtn\" id= \"b-submit\" type=\"submit\">
</form>";
}
} else{
echo "Failed.";
}
socket_close($socket);
?>
这段代码运行良好(虽然它有点笨重)。我希望能够在提交时 _POST 表单,但当我这样做时
echo count($_POST['id']);
在操作页面上,我总是得到 0。我收到的错误是:
未定义索引:第 14 行 C:\xampp\htdocs\upt\fbedit_submit.php 中的 id
如何获取表中的行数,然后访问这些值以通过另一个套接字连接发送它们?