2013-06-28 3 views
0

Я хочу отправить массив с флажками ON to upload.php. Каждый флажок должен иметь пару данных, извлеченных из столбцов mysql: CodigoCurso и Horarioid. Мне сложно отправить эту информацию в upload.php. Как я могу это выполнить?Выберите несколько значений из флажка

<?php 
session_start(); 
$connection = mysql_connect("localhost", "root", ""); 
mysql_select_db("mydb", $connection); 
$query = "SELECT Curso.CursoId, Hora.Horarioid,Persona.Cedula,Curso.CodigoCurso,Curso.NombreCurso,Curso.Creditos,Hora.Hora,Horario.PersonasMatriculadas FROM Persona INNER JOIN PreMatriculaEstudiante,Prematricula,Curso,Horario,Hora WHERE Persona.PersonaId = PreMatriculaEstudiante.PersonaId AND PreMatriculaEstudiante.PrematriculaID = Prematricula.PrematriculaId AND Prematricula.CursoId = Curso.CursoId AND Curso.CursoId = Horario.CursoId AND Horario.HorarioId = Hora.HorarioId AND Persona.Cedula = '" . $_SESSION["cedula"] . "'"; 
$result = mysql_query($query); 

if ($row = mysql_fetch_array($result)) { 
    echo "<form action='upload.php' method='POST'>"; 
    echo "<table border = '1'> \n"; 
    echo "<tr><td><b>Código Curso</b></td><td><b>Nombre Curso</b></td><td><b>Horario</b></td><td><b>Personas matriculadas</b></td></tr>"; 
    $k = 0; 
    $t = 0; 
    while ($array = mysql_fetch_array($result)) { 
     echo "<tr> 
         <td>" . $array['CodigoCurso'] . "</td>" . 
     "<td align='left'>" . 
     "<input type='checkbox' name='info[$k][$k]' value='" . $array['CursoId'] . $array['Horarioid'] . "'.nonchecked>" . utf8_encode($array['NombreCurso']) . "</td>" . 
     "<td>" . $array['Hora'] . 
     "<td>" . $array['PersonasMatriculadas'] . "</td>" . 
     "</tr>"; 

     $k++; 
     $t++; 
    } 

    echo "</table> \n"; 
    echo "<p>"; 
    echo "<input type='submit' value='Ingresar datos'/>"; 
    echo "</p>"; 
    echo "</form>"; 
} else { 
    echo "¡ No se ha encontrado ningún registro !"; 
} 

ответ

0

Изменить

<input type='checkbox' name='info[$k][$k]' value= 

в

<input type='checkbox' name='**{info[$k][$k]}[]**' value= 

Но быть предупрежден, если флажок не отмечен на странице HTML, то значение не посылается на сервер. Вам нужно будет проверить, установлено ли имя флажка, и если не применить к нему значение. Или, еще лучше, поля базы данных должны иметь значение по умолчанию.

0

Вы должны добавить квадратные скобки [] после имени поля флажка:

"<input type='checkbox' name='info[$k][$k][]' value='" . $array['CursoId'] . $array['Horarioid'] . "'.nonchecked>" . utf8_encode($array['NombreCurso']) . "</td>" . 

Помните, что если не выбраны флажки поле не отвечало, так что вы должны проверить, если установлены с помощью функции isset().

Важно: Не используйте mysql_* функции, использовать PDO/MySQLi вместо этого. Посмотрите здесь: Why shouldn't I use mysql_* functions in PHP?.

+0

Я получаю concatenate CursoId с Horarioid вместо того, чтобы быть на разных «строках» в массиве – Chu

+0

Просто комментарий ... почему у вас есть тот же самый индекс? (Два '$ k' в' info [$ k] [$ k] [] 'вместо' info [$ k] [$ t] [] 'или' info [$ t] [$ k] [] ' ? – jan267

+0

Хе-хе, во-первых, я новичок на php. Во-вторых, я не понимаю, как распределяются данные в массивах. Моя цель: контрольная кнопка имеет две даты: CodigoCurso и Horarioid. Когда будут выбраны некоторые флажки, Я хочу, чтобы эти флажки с их CodigoCurso и Horarioid. Я думал, что должен выделить в той же строке массива, потому что это данные из того же флажка. – Chu