我有一个文本框数组,我用一个变量命名了这些文本框(每个文本框都有一个唯一的名称)。我想用它的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'"; ?> >