2013-10-14 3 views
0

Я делаю сайт для управления школьным центром, и у меня есть сомнения, что я хочу, чтобы вы могли его решить.

У меня есть этот код:

login.php

<!doctype html> 
<html lang="es"> 
<head> 
<meta charset="iso-8859-1" /> 
</head> 

<body> 

<form action="comprobacionlogin_usuario.php" method="POST"> 
    <table border="1"> 
    <tr> 
    <th>Nombre de usuario</th> 
    <td><input type="text" name="usuario" autocomplete="off" required></td> 
    </tr> 
    <tr> 
    <th>Contrase&ntilde;a</th> 
    <td><input type="password" name="contrasena" autocomplete="off" required></td> 
    </tr> 
    <tr> 
     <td></td> 
     <td><input type="submit" value="Enviar"></td> 
    </tr> 

</table> 
</form> 
¿No eres usuario? Pulsa <a href="altanuevoprofesor.php">aqu&iacute;</a> 
</body> 
</html> 

nuevo_horario.php

<?php 

session_start(); 
$curso=$_POST['curso']; 
$clase=$_POST['clase']; 
?> 

<html lang="es"> 
    <head> 
    <meta charset="iso-8859-1"> 
    <script type="text/javascript" src="jquery.js"></script> 
    <script type="text/javascript" src="administrar_filas.js"></script> 
    <link rel="stylesheet" type="text/css" href="estilo_botones_tabla.css"> 
    Horario 
    </head> 
    <body> 
    <div id="elementos"> 
    <form id="datos" action="procesar_horario.php" method="post"> 
    <table border="1" id="tabla"> 
    <thead> 
    <tr> 
    <td>Hora</td> 
    <td>Lunes</td> 
    <td>Martes</td> 
    <td>Mi&eacute;rcoles</td> 
    <td>Jueves</td> 
    <td>Viernes</td> 
    </tr> 
    </thead> 

    <tbody> 
    <tr class="fila-base"> 
    <td><input type="text" name="hora_0" placeholder="Hora_0"></td> 
    <td><input type="text" name="asignatura_lun_0" placeholder="Asignatura"><br><input type="text" name="id_usuario_lun_0"placeholder="Id_profesor"></td> 
    <td><input type="text" name="asignatura_mar_0" placeholder="Asignatura"><br><input type="text" name="id_usuario_mar_0"placeholder="Id_profesor"></td> 
    <td><input type="text" name="asignatura_mie_0" placeholder="Asignatura"><br><input type="text" name="id_usuario_mie_0"placeholder="Id_profesor"></td> 
    <td><input type="text" name="asignatura_jue_0" placeholder="Asignatura"><br><input type="text" name="id_usuario_jue_0"placeholder="Id_profesor"></td> 
    <td><input type="text" name="asignatura_vie_0" placeholder="Asignatura"><br><input type="text" name="id_usuario_vie_0"placeholder="Id_profesor"></td> 
    <td class="eliminar">Eliminar</td> 
    </tr> 
    <input type="hidden" name="curso" id="curso" value="<?php echo $curso ?>"> 
    <input type="hidden" name="clase" id="clase" value="<?php echo $clase ?>"> 
    </tbody> 
    </table> 

    <input type="button" id="agregar" value="Agregar fila" /> 
    <input type="submit" id="enviar" value="Enviar"> 

    </form> 
    </div> 
    <?php 
     $conexion = mysql_connect("localhost", "alonsosjumper", "alonsosjumper") or die('No se pudo conectar: ' . mysql_error()); 
echo '<br>Conexi&oacuten satisfactoria<br>'; 

mysql_select_db("proyecto", $conexion) or die('No se pudo seleccionar la base de datos'); 

    $consulta= "select id_usuario, nombre, apellidos from usuarios where tipo_usuario='profesor' order by id_usuario"; 
    $resultado= mysql_query($consulta); 

    echo ' <p>Lista de profesores</p> 
    <table border="1" width="auto"> 
    <tr><td>Id_usuario</td><td>Nombre</td><td>Apellidos</td></tr>'; 

    while($fila = mysql_fetch_array($resultado)) 
{ 

    echo "<tr><td>".$fila['id_usuario']."</td><td>".$fila['nombre']."</td><td>".$fila['apellidos']."</td></tr>"; 
} 

    ?> 
    </body> 
</html> 

procesar_horario.php

<?php 

session_start(); 

//I wanna have here the variable "cuentaInputs" to use it in the for. 

$conexion = mysql_connect("localhost", "alonsosjumper", "alonsosjumper") or die('No se pudo conectar: ' . mysql_error()); 
echo '<br>Conexi&oacuten satisfactoria<br>'; 

mysql_select_db("proyecto", $conexion) or die('No se pudo seleccionar la base de datos'); 

for($i=0; $i<$cuentaInputs; $i++) { 
    for($j=1; $j<6; $j++) 
{ 
    if($j==1) 
    { 
     $asignatura=$_POST["asignatura_lun_".$i]; 
     $id_usuario=$_POST["id_usuario_lun_".$i]; 
     $hora=$_POST["hora_".$i]; 
    $consulta = "INSERT INTO horarios (asignatura, curso, clase, fecha, hora, id_usuario) VALUES ('$asignatura', '$curso','$clase','lunes','$hora','$id_usuario')"; 

    echo $consulta; 
    } 
    if($j==2) 
    { 
     $asignatura=$_POST["asignatura_mar_".$i]; 
     $id_usuario=$_POST["id_usuario_mar_".$i]; 
     $hora=$_POST["hora_".$i]; 
    $consulta = "INSERT INTO horarios (asignatura, curso, clase, fecha, hora, id_usuario) VALUES ('$asignatura', '$curso','$clase','lunes','$hora','$id_usuario')"; 

    echo $consulta; 
    } 
    if($j==3) 
    { 
     $asignatura=$_POST["asignatura_mie_".$i]; 
     $id_usuario=$_POST["id_usuario_mie_".$i]; 
     $hora=$_POST["hora_".$i]; 
    $consulta = "INSERT INTO horarios (asignatura, curso, clase, fecha, hora, id_usuario) VALUES ('$asignatura', '$curso','$clase','lunes','$hora','$id_usuario')"; 

    echo $consulta; 
    } 
    if($j==4) 
    { 
     $asignatura=$_POST["asignatura_jue_".$i]; 
     $id_usuario=$_POST["id_usuario_jue_".$i]; 
     $hora=$_POST["hora_".$i]; 
    $consulta = "INSERT INTO horarios (asignatura, curso, clase, fecha, hora, id_usuario) VALUES ('$asignatura', '$curso','$clase','lunes','$hora','$id_usuario')"; 

    echo $consulta; 
    } 
    if($j==5) 
    { 
     $asignatura=$_POST["asignatura_vie_".$i]; 
     $id_usuario=$_POST["id_usuario_vie_".$i]; 
     $hora=$_POST["hora_".$i]; 
    $consulta = "INSERT INTO horarios (asignatura, curso, clase, fecha, hora, id_usuario) VALUES ('$asignatura', '$curso','$clase','lunes','$hora','$id_usuario')"; 

    echo $consulta; 
    } 
    } 


    } 
$resultado = mysql_query($consulta); 

mysql_close($conexion); 


?> 

administrar_filas.js

$(function(){ 
    var cuentaInputs = ($(".fila-base").length); 

    $("#agregar").on('click', function(){ 
     $('#tabla > tbody:last').after('<tr><td><input type="text" name="hora'+cuentaInputs+'" placeholder="Hora"></td><td><input type="text" name="asignatura_lun_'+cuentaInputs+'" placeholder="Asignatura"><br><input type="text" name="id_usuario_lun_'+cuentaInputs+'"placeholder="Profesor"></td><td><input type="text" name="asignatura_mar_'+cuentaInputs+'" placeholder="Asignatura"><br><input type="text" name="id_usuario_mar_'+cuentaInputs+'"placeholder="Profesor"></td><td><input type="text" name="asignatura_mie_'+cuentaInputs+'" placeholder="Asignatura"><br><input type="text" name="id_usuario_mie_'+cuentaInputs+'"placeholder="Profesor"></td><td><input type="text" name="asignatura_jue_'+cuentaInputs+'" placeholder="Asignatura"><br><input type="text" name="id_usuario_jue_'+cuentaInputs+'"placeholder="Profesor"></td><td><input type="text" name="asignatura_vie_'+cuentaInputs+'" placeholder="Asignatura"><br><input type="text" name="id_usuario_vie_'+cuentaInputs+'"placeholder="Profesor"></td><td class="eliminar">Eliminar</td></tr>'); 
     cuentaInputs++; 

    }); 

    // Evento que selecciona la fila y la elimina 
    $(document).on("click",".eliminar",function(){ 
     if (cuentaInputs>1) 
     { 
     var parent = $(this).parents().get(0); 
     $(parent).remove(); 
     cuentaInputs--; 

     } 
     else 
      alert("No se puede eliminar la ultima fila"); 
    }); 

}); 

Я хотел бы иметь переменную «cuentaInputs» в «procesar_horario.php», чтобы использовать ее для. Мне нужно это для динамического расписания, которое я делаю, что можно добавить или удалить строки.

Как я могу передать переменные cuentaInputs из JQuery в PHP?

Большое спасибо!

+3

Можете ли вы ограничить свой код только теми частями, которые являются существенными для проблемы? Никто не хочет рассматривать такой фрагмент HTML и javascript. – matewka

+1

plus. Я даже не смог найти cuentaInputs в любом месте вашего javascript/html-кода. имя переменной другое? – Mohit

+0

Извините, я забыл код Javascript. Это уже опубликовано. –

ответ

1

после прочтения вашего комментария. кажется, вы пытаетесь отправить строки данных. Insted постановки на имя элемента и идентификатор, как следующий

name="asignatura_lun_'+cuentaInputs+'" 

использование массива индексации

name="asignatura_lun['+cuentaInputs+']" 

таким образом, вы получите следующие массивы в PHP

$_POST['hora'] 
$_POST['asignatura_lun'] 
$_POST['id_usuario_lun'] 
//likewise for mar, mie, jue and vie 

на стороне PHP петли для шкалы hora с использованием foreach

foreach($_POST['hora'] as $key => $value) //use $key for referencing other arrays. 
{ 
    for($j=1; $j<6; $j++) 
    { 
    if($j==1) 
    { 
     //use $key for referencing other arrays. 
     $asignatura=$_POST["asignatura_lun"][$key]; 
     $id_usuario=$_POST["id_usuario_lun"][$key]; 
     $hora=$value; //$value is current horra 
     $consulta = "INSERT INTO horarios (asignatura, curso, clase, fecha, hora, id_usuario) VALUES ('$asignatura', '$curso','$clase','lunes','$hora','$id_usuario')"; 

     echo $consulta; 
    } 

    //same for other weekdays 
    } 
} 

Ссылка: Прочитать question and answer.


Перед Edit:

Я действительно не могу понять большую часть вашего кода. Попробуйте использовать английские идентификаторы. но при кратком просмотре, использование скрытого элемента ввода должно решить вашу проблему. добавьте это в форме, которая подчиняется procesar_horario.php

<input type='hidden' name='cuentaInputs' id='cuentaInputs'/> 

вы можете обновить его значение при обновлении cuentaInputs.

$('#cuentaInputs').val(cuentaInputs); 
+0

Хотя более подходящим способом будет метод отправки формы, и пусть этот метод подготовит значения, которые необходимо отправить на сервер. проверьте http://api.jquery.com/submit. Если вам нужна помощь в этом. пожалуйста, измените и минимизируйте свой код немного с учетом только английских людей. – Mohit

+0

Это не работает. Я объясняю вам. Мне нужна эта переменная, чтобы подсчитать количество строк, при этом таблица создавалась динамически, а JQuery. Я хочу, чтобы переменная «cuentaInputs» использовала ее в «for» для вставки данных в MYSQL. –

+0

Я обновил ответ. и, пожалуйста, пройдите через [Loenix's] (http://stackoverflow.com/a/19369424/656539) ответ. Написание hora и profesor хорошо с точки зрения пользователя. Но сохраняйте испанский или любой другой язык только в пользовательском интерфейсе. в именах кода/переменных используйте английский. Это помогает другим англоязычным докладчикам работать с вами. – Mohit

0

Метод jjery ajax пошлет некоторую ценность PHP как это.

$.ajax({ 
    type:'POST', 
    url:'procesar_horario.php', 
    data: {q: putVariableHere}, //put a variable you want to pass here 
    success: function (response) { 
    console.log('yey, we passed the variable'); 
    } 
}); 

PHP:

<?php 

session_start(); 

//I wanna have here the variable "cuentaInputs" to use it in the for. 
$cuentaInputs = $_POST['q']; 
+0

OP пытается отправить форму с этим php-скриптом в качестве процессора форм. отправка его ajax-вызов не поможет. – Mohit

+0

Правда, не читал это достаточно хорошо (неудивительно, что я думаю), поэтому я преждевременно подпрыгнул до конца. – tomca32

+0

Извините, я забыл написать код Javascript. Правильно, теперь я добавил код javascript с вашим решением? Спасибо –

0

В вашем вопросе нет никаких признаков jQuery.
Если вы разрабатываете приложение, убедитесь, что вы знаете, как оно работает, или ваш проект обречен на провал.

jQuery - это библиотека для Javascript, язык программирования на стороне клиента, то есть это браузер, который использует пользователь, который использует код (как HTML и CSS).
PHP - это язык программирования, работающий на стороне сервера, что означает, что это явно работает на сервере.
Таким образом, вы не можете легко взаимодействовать между ними только своим собственным умом, в этом нет никакой магии.

Браузеры могут изначально отправить форму с помощью кнопки отправки.
Если вы хотите сделать это с помощью jQuery (или чистого Javascript), вы можете запустить вручную представление (например, с помощью jQuery $("form").submit()).
Вы также можете использовать его для отправки данных на сервер с функциями AJAX (например, с помощью jQuery $.post({howifeelit:"good"})), и сервер дает вам некоторые результаты (внутри HTTP).

Другие советы:

  • Предпочитают международный язык программирования. (даже если вы любите своего родного языка, я понимаю) Это более понятно и доступно для повторного использования.
  • Предпочитаете PDO старым устаревшим функциям mysql_ *.
  • Если вы упорствуете, используйте mysql_fetch_assoc() вместо mysql_fetch_array(), это легче и вы получите то, что хотите.
  • Посмотрите на один из миллионов учебных пособий в Интернете, чтобы узнать основы. (смотрите PDO, включить, POST и ключевые слова)
Смежные вопросы