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


How to access values in textboxes using a loop in php

我有一个文本框数组,我用一个变量命名了这些文本框(每个文本框都有一个唯一的名称)。我想用它的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的新手。任何想法都很棒。谢谢

这样尝试:

您使用的文本框名称不是字母,而是letter_0、letter_1等。

此外,interval是MySQL的保留字,您需要使用backtick: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)");
}

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

假设您的文本名称如下:text1,text2。。。etc

注意:您使用了$_GET,所以表单中的方法应该是GET-ie:method = "GET"

最好将print_r($_REQUEST);放在页面顶部,并相应地做其他事情。

请参阅此链接了解单引号和双引号之间的区别:PHP中单引号和单引号字符串之间的区别是什么?

如果您已经使用迭代器生成了文本框,那么您可能想要执行以下操作:

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

不要用c1、c2、c3、c4等列名保存到数据库中,而是尝试一列,让它调用col,并将文本框设置为保存为数组。

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

现在,如果我勾选apple和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'"; ?> >