0

我正在做一个管理学校中心的网站,我有一个疑问,希望你能解决它。

我有这个代码:

登录.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");
    }); 

});

我想在“procesar_horario.php”中使用变量“cuentaInputs”来使用它。我需要它用于我正在做的动态时间表,它可以添加或删除行。

如何将变量 cuentaInputs 从 Jquery 传递到 PHP?

非常感谢!

4

3 回答 3

1

阅读您的评论后。看来您正在尝试发送一行数据。插入元素名称和 id,如下所示

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

在使用 foreach 的 hora 数组的 php 侧循环

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
  }
}

参考:阅读此问答


编辑前:

我真的无法理解你的大部分代码。请尝试使用英文标识符。但简而言之,使用隐藏的输入元素应该可以解决您的问题。将此添加到您提交给 procesar_horario.php 的表单中

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

您可以在更新 cuentaInputs 时更新其值。

$('#cuentaInputs').val(cuentaInputs);
于 2013-10-14T21:00:37.027 回答
0

Jquery 的 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'];
于 2013-10-14T20:46:58.663 回答
0

您的问题中没有 jQuery 的迹象。
如果您正在开发应用程序,请确保了解它是如何工作的,否则您的项目注定要失败。

jQuery 是 Javascript(一种客户端编程语言)的库,这意味着这是用户使用的运行代码(如 HTML 和 CSS)的浏览器。
PHP 是一种在服务器端运行的编程语言,这显然意味着它是在服务器端运行的。
因此,您不能仅凭自己的思想就可以轻松地在它们之间进行交互,其中没有魔法。

浏览器本身可以使用提交按钮提交表单。
如果您想使用 jQuery(或纯 Javascript)来完成,您可以手动触发提交(例如使用 jQuery $("form").submit())。
您还可以使用它通过 AJAX 功能(例如使用 jQuery $.post({howifeelit:"good"}))将数据发送到服务器,然后服务器会为您提供一些结果(HTTP 内部)。

其他建议:

  • 首选国际语言进行编程。(即使你爱你的母语,我明白)这更容易理解和可重复使用。
  • 与旧的过时 mysql_* 函数相比,更喜欢 PDO。
  • 如果你坚持,请使用 mysql_fetch_assoc() 而不是 mysql_fetch_array(),这样更轻,你得到你想要的。
  • 查看网络上百万教程中的一个来学习基础知识。(查看 PDO、include、POST 和框架关键字)
于 2013-10-14T21:14:14.033 回答