我在将html文档中的复选框中的值作为逗号分隔的字符串插入数据库时遇到问题(我知道这通常被认为是错误的样式,但在这种情况下,这是必需的)。
我在这里有一个html文件的代码片段
<div id="page16" class="page">
<p style="font-weight: bold; width: 55%;"><a id="q16_qtext">*</a></p>
<p style="font-style: italic;">Vælg venligst de (højst) 3 primære årsager (i alt).</p>
<p style="font-style: italic;">Af økonomiske årsager:</p>
<input type="checkbox" name="q16[]" value="1" id="num161">For dyrt i forhold til udbyttet for eleverne<br>
<input type="checkbox" name="q16[]" value="2" id="num162">For dyrt i forhold til andre omkostninger (bøger, efteruddannelse af lærere osv.)<br>
<input type="checkbox" name="q16[]" value="4" id="num164">Andre økonomiske årsager<br>
<p style="font-style: italic;">Andre årsager:</p>
<input type="checkbox" name="q16[]" value="5" id="num165">Pga. skolesammenlægning eller en anden større ændring<br>
<input type="checkbox" name="q16[]" value="6" id="num166">Skolen havde/har ikke bemanding til det<br>
<input type="checkbox" name="q16[]" value="7" id="num167">Der var for tidskrævende i forhold til udbyttet (for eleverne i forhold til pensum)<br>
<input type="checkbox" name="q16[]" value="8" id="num168">Der var ikke længere opbakning til det i skoleledelsen (ikke økonomisk)<br>
<input type="checkbox" name="q16[]" value="9" id="num169">Der var ikke længere opbakning til det blandt lærerne<br>
<input type="checkbox" name="q16[]" value="10" id="num1610">Der var ikke længere opbakning til det blandt elever/forældre<br>
<input type="checkbox" name="q16[]" value="11" id="num1611">Andet. Angiv i så fald primært hvad: <a style="text-align: center;"></a><input type="text" name="q16extra" value="" id="num89"><br>
<input type="checkbox" name="q16[]" value="12" id="num1612">Ved ikke<br>
<p style="bottom:5px;"><input style="width: 150px; height: 30px;" type="button" class="all" id="B19" value="tilbage" onClick="showPreviousLayer()"><input style="width: 150px; height: 30px;" type="button" class="all" id="C20" value="fortsæt" onClick="checkAnswersSixteen()"></p>
</div>
然后我连接到数据库并使用这段php代码创建值
的数组$q16 = implode(",",$_POST['q16[]']);
然后使用列和值插入“table”。当然还有许多其他列和值要插入,这些工作!所以问题似乎不是插入语句,而是使用implode方法。
我试着做一个回声($ q16); 但这似乎只是空洞。
任何知道问题可能是什么的人?如果您需要任何其他信息,请告诉我:))
答案 0 :(得分:2)
我建议您尝试使用$_POST['q16']
,因为它正在转换为数组
$q16 = implode(",",$_POST['q16']);
答案 1 :(得分:0)
请记住,仅传递已检查的输入。因此,如果我检查3个第一个框和最后一个框,我的示例文件的输出将是:
Array
(
[q16] => Array
(
[0] => 1
[1] => 2
[2] => 4
[3] => 12
)
[q16extra] => e
)
----1,2,4,12
以下是示例文件:
<div id="page16" class="page">
<p style="font-weight: bold; width: 55%;"><a id="q16_qtext">*</a></p>
<p style="font-style: italic;">Vælg venligst de (højst) 3 primære årsager (i alt).</p>
<p style="font-style: italic;">Af økonomiske årsager:</p>
<form action="form.php" method="post">
<input type="checkbox" name="q16[]" value="1" id="num161">For dyrt i forhold til udbyttet for eleverne<br>
<input type="checkbox" name="q16[]" value="2" id="num162">For dyrt i forhold til andre omkostninger (bøger, efteruddannelse af læ rere osv.)<br>
<input type="checkbox" name="q16[]" value="4" id="num164">Andre økonomiske årsager<br>
<p style="font-style: italic;">Andre årsager:</p>
<input type="checkbox" name="q16[]" value="5" id="num165">Pga. skolesammenlægning eller en anden større ændring<br>
<input type="checkbox" name="q16[]" value="6" id="num166">Skolen havde/har ikke bemanding til det<br>
<input type="checkbox" name="q16[]" value="7" id="num167">Der var for tidskrævende i forhold til udbyttet (for eleverne i forhold til pensum)<br>
<input type="checkbox" name="q16[]" value="8" id="num168">Der var ikke længere opbakning til det i skoleledelsen (ikke økonomisk) <br>
<input type="checkbox" name="q16[]" value="9" id="num169">Der var ikke længere opbakning til det blandt lærerne<br>
<input type="checkbox" name="q16[]" value="10" id="num1610">Der var ikke længere opbakning til det blandt elever/forældre<br>
<input type="checkbox" name="q16[]" value="11" id="num1611">Andet. Angiv i så fald primært hvad: &n bsp;<a style="text-align: center;"></a>
<input type="text" name="q16extra" value="e" id="num89"><br>
<input type="checkbox" name="q16[]" value="12" id="num1612">Ved ikke<br>
<p style="bottom:5px;">
<input style="width: 150px; height: 30px;" type="button" class="all" id="B19" value="tilbage" onClick="showPreviousLayer()">
<input style="width: 150px; height: 30px;" type="submit" class="all" id="C20" value="fortsæt" onClick="checkAnswersSixteen()"></p >
</form>
</div>
<?php
print '<pre>';
print_r($_POST);
print '----';
print_r( implode(",", $_POST['q16']) );
print '</pre>';
?>
不同之处在于元素和最后的php - print语句。