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