2013-06-28 202 views
0

我想發送一個數組,其複選框爲ON to upload.php。每個複選框都必須有一對從mysql列中提取的數據:CodigoCursoHorarioid。我無法將這些信息發送到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

我得到連擊CursoId與Horarioid,而不是他們在不同的「行」的陣列 – Chu

+0

只是一個評論...在你爲什麼有相同的指數? ('info [$ k] [$ k] []'中有兩個'$ k',而不是'info [$ k] [$ t] []'或'info [$ t] [$ k] []'' ? – jan267

+0

呵呵,首先,我是一個php新手。其次,我不明白數據如何分配在數組中。我的目標是:一個checkbutton有兩個數據:CodigoCurso和Horarioid。當選擇一些複選框時,我想這些複選框與他們的CodigoCurso和Horarioid。我想我必須分配在陣列上的同一行,因爲是從同一複選框的數據 – Chu