如何使用php中的循环访问文本框中的值

时间:2013-02-11 05:38:12

标签: php arrays textbox

我有一个文本框数组,我使用变量命名(每个文本框都有一个唯一的名称)。我想在这些文本框中使用它的ID获取数据并将其存储在数据库中。我使用以下代码尝试了这个,但它没有用。

if($_GET['btn1']=="Submit"){
 for ($p=0;$p<12;$p++){
   $qty=$_GET['text$p'];
   mysql_query("UPDATE model SET column$m='$qty' WHERE `ModelName`='$rt'"); 
   }      
}

我是PHP的新手。任何想法都会很棒。 感谢。

3 个答案:

答案 0 :(得分:0)

如果您使用迭代器生成了文本框,则可能需要执行类似的操作

$qty=$_GET['text'.$p];

不是使用列名称(如c1,c2,c3,c4)保存到数据库,而是尝试使用一列来调用它并将文本框设置为另存为数组。

<input name="col[]" value="apple">
<input name="col[]" value="pear">
<input name="col[]" value="banana">

现在,如果我勾选苹果和香蕉并将表单提交给php,我将获得一系列值,

var_dump( $_GET['col'] ); 

将返回类似的内容,

array(2) {
  [0] =>  string(5) "apple"
  [1] =>  string(6) "banana"
}

存储在您的数据库中

mysql_query("UPDATE model SET col='".json_encode($_GET['col'])."' WHERE `ModelName`='$rt'");

检索列时,您需要执行json_decode。当您输出输入时,您现在可以执行类似的操作,

<input name="col[]" value="apple" <? if (in_array('apple', $col)) echo "CHECKED='CHECKED'"; ?> >

答案 1 :(得分:0)

尝试这样:

您的文本框名称不是字母,因为您正在使用它们 - 它们是letter_0,letter_1等。

此外,interval是一个MySQL保留字,你需要使用反引号来转义它:interval

要检索所有这些名称,您可以对其所有名称进行硬编码,例如$ letter1 = $ _POST ['letter_1'];,或者您可以在另一个循环中执行此操作:

for ($i=0; $i<5; $i++) {
    $letter = $_POST['letter_' . $i]; 
    $interval = $_POST['interval' . $i]; 
    $gt = $_POST['gt' . $i]; 
    $s = mysql_query("INSERT INTO `grad_table` (`letter`, `interval`, `gt`) VALUES ('$letter',$interval,$gt)");
}

答案 2 :(得分:0)

$qty=$_GET['text$p'];将其更改为$qty=$_GET['text'.$p];并尝试

假设您的文字名称如下:text1,text2,... etc

注意:您使用了$ _GET,因此表单中的方法应该是get:method = "GET"

在页面顶部更好地print_r($_REQUEST);并相应地执行其他操作。

请参阅此链接,了解单引号和双引号之间的差异:What is the difference between single-quoted and double-quoted strings in PHP?