Ver Mensaje Individual
  #1 (permalink)  
Antiguo 21/04/2015, 09:23
SamuelGG
 
Fecha de Ingreso: marzo-2015
Mensajes: 20
Antigüedad: 9 años, 1 mes
Puntos: 1
Consulta.. error al enviar parametros y edición

Hola, tengan buenos días...
Lo que sucede es que necesito hacer una edición de registros, pero no he podido, realmente he intentando pero no he conseguido hacerlo... me gustaría saber si uds pueden ayudarme a realizarlo... pondré los códigos con los que estoy trabajando.

Aquí es donde listo las facturas a modificar.
Código PHP:
Ver original
  1. $usu =new Consultar();         
  2.     $usu->consulta("Select a.num_pedido,val_factura,fecha_factura,id_pedido, b.des_forma_de_pago, c.nombre_completo, d.descripcion,
  3. d.id_estado, e.id_envio, id_ciudad_envio, f.nombre  from factura a, forma_de_pago b, cliente c, facturas_envios_estados d,
  4. facturas_envios e, ciudades f WHERE a.id_forma_de_pago=b.id_forma_de_pago AND a.id_cliente=c.id_cliente AND a.id_envio=e.id_envio
  5. AND e.id_estado=d.id_estado AND e.id_ciudad_envio=f.id_ciudad AND e.id_estado=1 ORDER BY fecha_factura  DESC");
  6.  
  7.     for ($i=0; $i <sizeof($usu->datos); $i++)
  8.     {
  9.  
  10.     echo "<input type='hidden' id='envio' name='enviar' value=".$usu->datos[$i][8].">";
  11. /*  $envio = $usu->datos[$i][8];
  12.         echo $i." /".$envio."<br>";
  13. */
  14.         //$usu = $a[$i];
  15.         //print_r($envio);
  16.     if ($usu->datos[$i][6] !== 'Entregado') {
  17.         $color='#F69292';
  18.     }else{
  19.         $color = '#FFFFFF';
  20.     }
  21.     //print($rojo);
  22. /*
  23.     ERROR !!! ::: THE METHOD MUST BE A STRING ::: !!!
  24. */
  25.         echo "<tr bgcolor='".$color."'>
  26.         <td>".$usu->datos[$i][0]."</td>
  27.         <td>".$usu->datos[$i][5]."</td>
  28.         <td>".$usu->datos[$i][2]."</td>
  29.         <td>".$usu->datos[$i][10]."</td>
  30.         <td>".$usu->datos[$i][6]."</td>
  31.         <td> ".number_format($usu->datos[$i][1])."</td>
  32.         <td>";?> <button class="btn" data-toggle="modal" id="#mimodal" data-target="#mimodaleditar" >Editar
  33.                 </button>
  34.             <div class="modal fade" id="mimodaleditar" tabindex="-1" role="dialog" aria-labelledby="mimodalLabel" aria-hidden="true">
  35.             <div>
  36.                     <?php include("editar_factura.php");?>
  37.             </div>
  38.             </div>
  39.  
  40.         <td>Detalles</td>
  41.         <td>Eliminar</td></tr>
  42. <?php
  43.     }

Este archivo es el que aparece como "editar_factura.php",
Código PHP:
Ver original
  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4.     <title>MANEJO DE CAMIONES</title>
  5.     <!--JQuery-->
  6.      <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script>
  7.  
  8.     <!--Bootstrap-->
  9.     <script type="text/javascript" src="js/bootstrap.js"></script>
  10.     <link rel="stylesheet" type="text/css" href="css/bootstrap.css">
  11.  
  12.     <!--Css-->
  13.     <link rel="stylesheet" type="text/css" href="css/style.css">
  14.  
  15.     <!--Loging-->
  16.     <script type="text/javascript" src="js/login.js" ></script>
  17.  
  18.     <!--Ajax CRUD-->
  19.     <script type="text/javascript" src='js/crud.js' ></script><!--?version=<?php //echo date("WmdGis"); ?>-->
  20.  
  21.     <meta name="viewport" content="width=device-width, initial-scale=1"><!--Permite el zoom para funcionalidad en moviles.-->
  22.     <meta http-equiv="X-UA.Compatible" content="IE=Edge">
  23.     <title></title>
  24.     <meta charset="utf-8">
  25.  
  26. </head>
  27. <body>
  28.         <div class="well col-md-8 col-md-offset-2" class="form-horizontal">
  29.                 <center><h1>INGRESE LOS DATOS</h1></center>
  30.  
  31.             <form class="form-horizontal" action="#" method="post" role="form">
  32.  
  33.                 <div>
  34.  <?php
  35.         //require("crud.php");
  36. /*
  37. **
  38.  
  39. **
  40. */      //INSTANCIANDO LA CLASE CLASE Conectar, QUE TRAE LOS DATOS DE LA CONEXION AL SERVIDOR DE POSTGRESQL;
  41.         include_once("includes/conexion.php");
  42.         $conectar = new Conectar();
  43.         $conectar->con();
  44.  
  45.         //ESTRAYENDO LOS DATOS DE LA TABLA forma_de_pago, PARA MOSTRARLOS EN EL <SELECT>;
  46.  
  47.         $db = new Consultar();
  48.         $db->consulta("SELECT * FROM facturas_envios_estados");  //-> q es una funcion o un atributo de ese objeto
  49.  
  50.         echo "<label class='col-md-3 control-label' for='nombre'>Estado de factura</label>";
  51.         echo "<div class='col-md-8'>"; 
  52.         echo "<select class='form-control' name='estado' id='estado'><option value=''>Estado de la factura<br>";       
  53. //NO FUE POSIBLE HACER EL CICLO QUE ME MUESTRA TODOS LAS POSICIONES DE LA MATRIZ
  54.                 echo "<option value=".$db->datos[0][0].">".ucwords($db->datos[0][1]);
  55.                 echo "<option value=".$db->datos[1][0].">".ucwords($db->datos[1][1]);
  56.             //0 = CODIGO ---- 1 = DESCRIPCION      
  57.         echo"</select>";
  58.  
  59. ?>
  60.             </div>
  61.             <div>
  62.                 <label class="col-md-3 control-label" for="ced_per_recibe">Cédula persona que recibe</label>
  63.                 <div class="col-md-8">
  64.                     <input class="form-control" type="text" name="ced_per_recibe" id="ced_per_recibe" placeholder="">  
  65.                 </div>
  66.             </div>
  67.             <div>
  68.                 <label class="col-md-3 control-label" for="per_recibe">Nombre completo</label>
  69.                 <div class="col-md-8">
  70.                     <input class="form-control" type="text" name="per_recibe" id="per_recibe" placeholder="">  
  71.                 </div>
  72.             </div>
  73.             <div>
  74.                 <label class="col-md-3 control-label" for="fecha_entrega">Fecha de entrega</label>
  75.                 <div class="col-md-8">
  76.                     <input class="form-control" type="datetime-local" name="fecha_entrega" id="fecha_entrega" />   
  77.                 </div>
  78.             </div>
  79. <?php
  80.  
  81.     if (isset($_POST['estado'])) {
  82.        
  83.         $id = $_POST['id_envio'];
  84.         //echo "Welcome ".$id;
  85.         $estado = $_POST['estado'];
  86.         $ced_per_recibe = $_POST['ced_per_recibe'];
  87.         $per_recibe = strtoupper($_POST['per_recibe']);
  88.         $fecha_entrega = $_POST['fecha_entrega'];
  89.         //$id_usuario = $_SESSION['id_usuario'];
  90.  
  91.     }
  92.  
  93. /*  $crud = new crud();
  94.     $crud->modificar($id,$estado,$per_recibe,$ced_per_recibe,$fecha_entrega);
  95. */
  96. ?>
  97.  
  98.             <div class="col-md-2 col-md-offset-3">
  99.                         <input class="btn" type="button" onclick="opciones_factura(envio)" value="Modificar">&nbsp;&nbsp;
  100.                         <button type="submit" data-dismiss="modal" aria-hidden="true" class="btn">Cerrar</button>
  101.             </div>
  102.         </form>
  103.         </div>
  104. </body>
  105. </html>


Este es el script por donde paso los datos....
Código Javascript:
Ver original
  1. function opciones_factura(funcion, env){
  2.  
  3.     //var env = new Array();
  4. //var envio =  document.getElementById('envio').value;
  5. //  alert("Id de envio es: "+ envio);
  6.  
  7.     alert("Welcome..."+ env);
  8.     $.ajax({
  9.         type: "POST",
  10.         data:{function:funcion, envio},
  11.         url: "crud.php",
  12.         success: function (msg) {
  13.             if(msg!==''){
  14.                 alert(msg);
  15.             }
  16.         }
  17.     });
  18. }

Este script es el que hace la edición...
Código PHP:
Ver original
  1. <?php
  2. $obj=new crud();
  3. //TRAER LA FUNCION DESDE EL crud.js, FUNCION data{function};
  4. $function=$_REQUEST['function'];
  5. $obj->$function();
  6.  
  7. class crud{
  8.  
  9.     function hola(){
  10.         echo "a";
  11.     }
  12.  
  13.     /*
  14.     *PARA ACTUALIZAR,
  15.     *estado, persona que recibe, cedula persona que recibe, fecha entrega, evidencia fotográfica
  16.  
  17.     para colocar variable por defecto se iguala a null... $variable = null;
  18.     */
  19.     function modificar($id,$estado,$per_recibe,$ced_per_recibe,$fecha_entrega){
  20.  
  21.         if (!is_numeric($id) or (!is_numeric($estado)))  {
  22.             echo "Los valores están incorrectos";
  23.             return;
  24.         }
  25.             $sql="UPDATE facturas_envios SET id_estado=".$estado.", per_recibe=".$per_recibe.", ced_per_recibe=".$ced_per_recibe.
  26.             ", fecha_entrega=".$fecha_entrega."WHERE id_envio=".$id;
  27.             echo $sql;
  28.             //pg_query($sql);
  29.     }
  30. }


Y bueno.... realmente no sé si esté haciendo bien las cosas, lo que buscaba primero es por un alert mostrar la id de cada factura, lo cual no me sale, sin importa en que factura clickee el boton "Editar", me muestra sólo el id de la primer factura en la tabla... luego pues sería que hiciera la edición...
No estoy seguro si esté enviando bien los parámetros o algo así... Ojalá puedan ayudarme, y gracias a todos.