0

好的,所以我有一个页面可以调用 msyql 数据库中的信息列表。比如说,我有一个名为 TABLE 的表,其中包含 id、姓名、电话号码和单选按钮组(家庭、手机、工作)等。我创建了一个脚本,可以在表格中打印姓名、电话号码和“状态(不知道最好叫什么,但它是单选按钮的值)单选按钮。我想做的是让每一行,如果我为单选按钮分配一个值,它将编辑状态部分。比如说,在第 1 行,我单击主页,然后单击第 2 行、单元格和第 3 行主页……等等,然后我点击提交按钮,它将更新数据库。

因此,这是表中单选按钮部分的代码。这是在一个 php 标签下

我最终做的基本上是调用每组单选按钮,status_type1、status_type2、status_type3 ...基本上是radio name='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 的变量]。不幸的是,这不起作用。我想知道是否有人可以帮助我弄清楚我应该如何格式化它,或者是否可以在变量中声明一个变量。谢谢!

4

2 回答 2

0

您的 PHP 代码在语法上不正确。假设它$info具有正确的值,它应该读取

if ($_POST["status_type$info[id]"]) 

注意:

  • 该空间已被删除以匹配 HTML
  • 双引号已从字符串内部删除,现在改为定界
  • 删除了数组索引中单引号$info

您也可以使用等效的$_POST["status_type".$info['id']].

但是,该代码还存在许多其他问题:

  • 您似乎对页面中的多个单选按钮使用了相同的 HTML id(每行都重复使用了 id)。这是不正确的;id 应该是唯一的。
  • 如果未定义变量,则应该if防止;E_NOTICE即它应该读if(isset($_POST[...]))
  • 该代码易受SQL 注入攻击。这应该立即修复
于 2012-08-29T07:29:03.000 回答
0

应该

if ($_POST["status_type".$info['id'].""]){
    .....
}

你有:

  if ($_POST['status_type "$info['id']"']) {
    .....
  }

我也会这样做:$statusType = "status_type".$info['id'];并像使用它一样$_POST["$statusType"]

$edit_status_sql="UPDATE status SET type = '."$statusType".' WHERE id = '".$id."'";
于 2012-08-29T07:30:07.480 回答