好的,我有一个页面,它调用msyql数据库中的信息列表。比如说,我有一个名为table的表,其中包含列id、名称、电话号码和单选按钮组(home、cell、work)等,和"status"(不确定该怎么称呼,但这是单选按钮的值)单选按钮。我想做的是让它为每一行,如果我为单选按钮分配一个值,它将编辑状态部分。比如说,在第1行,我单击主页,第2行,单元格,第3行主页…等等,然后我点击提交按钮,它将更新数据库。
这是我对表格中单选按钮部分的代码。这是在php标签下
我最终所做的基本上是调用每组单选按钮,status_type1、status_type2、status_type3……基本上是单选名称="status_type"。$info['id']。"
我想做一个if语句,看看是否有通过点击按钮分配的值,然后提交它们以供输入。这就是我到目前为止所拥有的。
//Radio Button Template
<fieldset>
<input type='radio' id='status_type_home' name='status_type".$info['id']."' value='home' />
<label for='status_type_home'>home</label>
<input type='radio' id='status_type_work' name='status_type".$info['id']."' value='work' />
<label for='status_type_work'>work</label>
<input type='radio' id='status_type_cell' name='status_type".$info['id']."' value='cell' />
<label for='status_type_cell'>cell</label>
</fieldset>
</td>";
//If statement to submit radio buttons
if ($_POST['status_type "$info['id']"'])
{
$edit_status_sql="UPDATE status SET type = 'status_type".$info['id'] . "' WHERE id = '" . $id . "'";
$edit_status_res=mysqli_query($connection, $edit_status_sql) or die(mysqli_error($connection));
}
我遇到的问题基本上是,我已经将单选按钮的名称声明为status_type[基于id的变量]。不幸的是,这不起作用。我想知道是否有人能帮我弄清楚应该如何格式化它,或者是否可以在变量中声明一个变量。谢谢
您的PHP代码语法不正确。假设$info
具有正确的值,它应该读取
if ($_POST["status_type$info[id]"])
注意:
- 已删除空间以匹配HTML
- 双引号已从字符串内部删除,现在改为对其进行分隔
- 删除了
$info
的数组索引中的单引号
您也可以使用等效的$_POST["status_type".$info['id']]
。
然而,该代码还有许多其他问题:
- 您似乎对页面中的多个单选按钮使用了相同的HTML ID(ID对每行重复使用)。这是不正确的;id应该是唯一的
- 如果未定义变量,则
if
应阻止E_NOTICE
;即它应该读取CCD_ 6 - 该代码易受SQL注入的攻击。这应该立即修复
应该是
if ($_POST["status_type".$info['id'].""]){
.....
}
你有:
if ($_POST['status_type "$info['id']"']) {
.....
}
我也会这样做smth:$statusType = "status_type".$info['id'];
,并像$_POST["$statusType"]
一样使用它
和
$edit_status_sql="UPDATE status SET type = '."$statusType".' WHERE id = '".$id."'";