多次使用ID /名称时插入数据库

时间:2014-02-18 07:32:11

标签: php html mysql

我有这张桌子:

foreach( //conditionals ){ 
  <td id="changeStatus">
     <input type="text" name="rcStatus" value=""/>
  </td>
}

<td>是空白的,当我点击每一个时,单元格的bgcolor会发生变化,而rcStatus的值也会变化。

我使用此代码:

<script> 
  $('#table #changeStatus').click(
    function(){
      var cell = $(this);
      state = cell.data('state') || 'first';

    switch(state){
      case 'first':
      cell.addClass('red');
      cell.data('state', 'second');
      this.getElementsByTagName('input')[0].value = "missed";
      break;
      // other cases here 
     }
  });
</script>

我现在的问题是我需要将rcStatus的值存储在我的数据库中。 会发生什么是我只能存储最近设置的rcStatus。 我正在使用PHP。

foreach( //conditionals ){ 
  mysql_query("INSERT INTO `details`(ID, Name, Status) VALUES('NULL','$_POST[name]','$_POST[rcStatus]');");
}

即使我使用相同的名称/ ID,如何使用$_POST调用每个变量?

3 个答案:

答案 0 :(得分:0)

您可以在输入字段的名称后附加一个数字以标识每个输入字段,另请参阅Multiple inputs with same name through POST in php

答案 1 :(得分:0)

你可以使用这个逻辑。

$i = 1;
foreach( //conditionals ){ 
  <td id="changeStatus">
     <input type="text" name="rcStatus<?php echo $i; ?>" value=""/>
  </td>
$i++;
}

答案 2 :(得分:0)

将您的<tr>更改为:

foreach( //conditionals ){ 
  <td id="changeStatus">
     // giving [] to a name attribute makes it an input array, like @Smutje mentioned
     <input type="text" name="rcStatus[]" value=""/>   
  </td>
}

在你的PHP中:

foreach($_POST[rcStatus] as $key=>$val){ 
  mysql_query("INSERT INTO `details`(ID, Name, Status) VALUES('NULL','$_POST[name]','$val');");
}

一些注意事项:

  1. 请迁移到 mysqli_ 函数,因为 mysql _ 已弃用
  2. 您对SQL Injection持开放态度。目前,在迁移之前,您可以使用mysql_real_escape_string来逃避$_POST