вставка данных флажка в базу данных MySQL через метод POST - PullRequest
1 голос
/ 12 февраля 2012

У меня проблема со вставкой значений из флажков в 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.&nbsp;&nbsp;&nbsp;&nbsp; Angiv i så fald primært hvad: &nbsp;&nbsp;<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[]']);

Изатем вставьте в «таблицу» столбцы и значения.Конечно, нужно вставить много других столбцов и значений, и они работают!так что, похоже, проблема не в операторе вставки, а в методе implode, возможно.

я попытался сделать эхо ($ q16);но это кажется просто пустым.

Кто-нибудь, кто знает, в чем может быть проблема?пожалуйста, дайте мне знать, если вам нужна какая-либо другая информация:)

Ответы [ 2 ]

2 голосов
/ 12 февраля 2012

Я предлагаю вам попробовать использовать $_POST['q16'], так как он конвертируется в массив

$q16 = implode(",",$_POST['q16']);
0 голосов
/ 12 февраля 2012

Имейте в виду, что передаются только проверенные данные.Поэтому, если я проверю 3 первых поля и последнее, вывод моего файла примера будет:

Array
(
    [q16] => Array
        (
            [0] => 1
            [1] => 2
            [2] => 4
            [3] => 12
        )

    [q16extra] => e
)
----1,2,4,12

А вот файл примера:

<code>   <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.&nbsp;&nbsp;&nbsp;&nbsp; Angiv i så fald primært hvad: &nbsp;&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 '
';?>

Разница заключается в элементе и операторах php - print в конце.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...