Ver Mensaje Individual
  #1 (permalink)  
Antiguo 12/12/2016, 09:51
agustinpak
 
Fecha de Ingreso: febrero-2012
Ubicación: Cancun
Mensajes: 79
Antigüedad: 12 años, 2 meses
Puntos: 0
Update con POO y AJAX

Hola Gente, Saludos!

Estoy con un problema desde ayer, no puedo actualizar los registros y no se porque. El alta y la eliminación la realizo con éxito, pero no así la actualización. (Clic en editar no hace nada!) Lo que si, no pude traer la variable mediante post en el delete, la tuve que traer como request, y honestamente no se porque.



Index:

Código HTML:
Ver original
  1. <script src="funciones-ajax.js" type="text/javascript"></script>  
  2. </head>
  3.  
  4.     <div id="formulario">
  5.  
  6.       Codigo <br/><input id="codigo" type="text" /><br/><br/>
  7.       Producto <br/><input id="producto" type="text" /><br/><br/>
  8.       Descripcion <br/><input id="descripcion" type="text" /><br/><br/>      
  9.       Precio <br/><input id="precio" type="text" /><br/><br/>                  
  10.       <input type="button" onclick="altaDatos();" value="Enviar"/>
  11.  
  12.     </div>
  13.  
  14.     <div id='resultado'></div>
  15.     <script type="text/javascript">mostrarDatos();</script>

clase, productos.php

Código PHP:
producto.php

[PHP]<?php
class Producto{
    private 
$db;
    public function 
__construct(){
        
$this->db = new Database();
        }
    
    public function 
__destruct(){
        
$this->db=null;
        }
    
    public function 
getproductos(){
        return 
$this->db->query("select * from productos order by codigo desc");
        }
    
    public function 
insertproductos($codigo,$producto,$descripcion,$precio){
        
$this->db->query("insert into productos (codigo, producto, descripcion, precio) values ($codigo, '$producto', '$descripcion', $precio)");
        } 

    public function 
updateproductos($codigo,$producto,$descripcion,$precio){
        
$this->db->query("update productos set codigo = $codigo, producto = $producto, descripcion = $descripcion, precio = $precio where codigo = $codigo");
        } 

    public function 
eliminarproductos($codigo){
        
$this->db->query("delete from productos where codigo = $codigo");
        }
    
        
    }
?>
[/PHP]

funciones-ajax.js

Código Javascript:
Ver original
  1. // JavaScript Document
  2. function objetoAjax(){
  3.     var xmlhttp=false;
  4.     try {
  5.         xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
  6.     } catch (e) {
  7.         try {
  8.            xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
  9.         } catch (E) {
  10.             xmlhttp = false;
  11.         }
  12.     }
  13.  
  14.     if (!xmlhttp && typeof XMLHttpRequest!='undefined') {
  15.         xmlhttp = new XMLHttpRequest();
  16.     }
  17.     return xmlhttp;
  18. }
  19.  
  20. function mostrarDatos(){
  21.     //donde se mostrará el resultado de los productos
  22.     divResultado = document.getElementById('resultado');
  23.    
  24.     //instanciamos el objetoAjax
  25.     ajax=objetoAjax();
  26.     //usamos el medoto POST
  27.     //archivo que realizará la operacion consulta.php
  28.     ajax.open("POST", "consulta.php",true);
  29.     ajax.onreadystatechange=handler_usuario;
  30.     ajax.send()
  31.        
  32.     function handler_usuario() {
  33.         if (ajax.readyState==4) {
  34.             //mostrar resultados de la consulta a la tabla de productos
  35.             divResultado.innerHTML = ajax.responseText;
  36.         }
  37.     }  
  38. }
  39.  
  40.  
  41.  
  42. function altaDatos(){
  43.     //obtengo los valores de los campos de input del formulario
  44.     codigo = document.getElementById('codigo').value;
  45.     producto = document.getElementById('producto').value;
  46.     descripcion = document.getElementById('descripcion').value;
  47.     precio = document.getElementById('precio').value;
  48.    
  49.     //instanciamos el objetoAjax
  50.     ajax=objetoAjax();
  51.     //usamos el medoto POST
  52.     //archivo que realizará la operacion alta.php
  53.     ajax.open("POST", "alta.php",true);
  54.     ajax.onreadystatechange=handler_usuario;
  55.    
  56.     ajax.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
  57.     //enviando los valores
  58.     ajax.send("codigo="+codigo+"&producto="+producto+"&descripcion="+descripcion+"&precio="+precio)
  59.  
  60.         function handler_usuario() {
  61.         if (ajax.readyState==4) {
  62.             //blanqueo los campos del formulario
  63.             document.getElementById('codigo').value='';
  64.             document.getElementById('producto').value='';
  65.             document.getElementById('descripcion').value='';
  66.             document.getElementById('precio').value='';
  67.  
  68.             //actualizo el listado de productos para mostrar el ultimo insertado
  69.             mostrarDatos();
  70.         }
  71.     }
  72. }
  73.  
  74.  
  75.  
  76. function modificarDatos(){
  77.     //obtengo los valores de los campos de input del formulario
  78.     codigo = document.modificar.codigo.value;
  79.     producto = document.modificar.producto.value;
  80.     descripcion = document.modificar.descripcion.value;
  81.     precio = document.modificar.precio.value;
  82.    
  83.     //instanciamos el objetoAjax
  84.     ajax=objetoAjax();
  85.     //usamos el medoto POST
  86.     //archivo que realizará la operacion alta.php
  87.     ajax.open("POST", "modificar2.php",true);
  88.     ajax.onreadystatechange=handler_usuario;
  89.    
  90.     ajax.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
  91.     //enviando los valores
  92.     ajax.send("codigo="+codigo+"&producto="+producto+"&descripcion="+descripcion+"&precio="+precio)
  93.  
  94.     function handler_usuario() {
  95.         if (ajax.readyState==4) {
  96.             //blanqueo los campos del formulario
  97.             document.getElementById('codigo').value='';
  98.             document.getElementById('producto').value='';
  99.             document.getElementById('descripcion').value='';
  100.             document.getElementById('precio').value='';
  101.  
  102.             //actualizo el listado de productos para mostrar el ultimo insertado
  103.             mostrarDatos();
  104.         }
  105.     }
  106. }  
  107.  
  108.  
  109.  
  110. function eliminarDatos(){
  111.     //obtengo los valores de los campos de input del formulario
  112.     codigo = document.getElementById('codigo').value;
  113.    
  114.     //instanciamos el objetoAjax
  115.     ajax=objetoAjax();
  116.     //usamos el medoto POST
  117.     //archivo que realizará la operacion alta.php
  118.     ajax.open("POST", "eliminar.php",true);
  119.     ajax.onreadystatechange=handler_usuario;
  120.    
  121.     ajax.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
  122.     //enviando los valores
  123.     ajax.send("codigo="+codigo)
  124.    
  125.     function handler_usuario() {
  126.         if (ajax.readyState==4) {
  127.             //blanqueo los campos del formulario
  128.             document.getElementById('codigo').value='';
  129.  
  130.             //actualizo el listado de productos para mostrar el ultimo insertado
  131.             mostrarDatos();
  132.         }
  133.     }  
  134. }

alta.php

Código PHP:
<?php
require ('core/core.php');

    
$producto = new Producto();
    
$productos $producto->insertproductos($_POST['codigo'],$_POST['producto'],$_POST['descripcion'],$_POST['precio']);
    

?>
consulta.php

Código PHP:
<?php

require ('core/core.php');
echo 
'<table width="700" border=1>';
echo 
'<tr>
        <td>Codigo</td>
        <td>Producto</td>
        <td>Descripcion</td>
        <td>Precio</td>
      </tr>'
;    
    
$producto = new Producto();
    
$productos $producto->getproductos();
    foreach (
$productos as $unproducto){
          echo 
'<tr>
            <td>'
.$unproducto['codigo'].'</td>
            <td>'
.$unproducto['producto'].'</td>
            <td>'
.$unproducto['descripcion'].'</td>
            <td>'
.$unproducto['precio'].'</td>
            <td><a href="modificar.php?codigo='
$unproducto['codigo'].'">Editar</a></td>
            <td><a href="eliminar.php?codigo='
$unproducto['codigo'].'">Eliminar</a></td>            

          </tr>'
;
    }
    echo 
'</table>';

    

?>
eliminar.php

Código PHP:
<?php
require ('core/core.php');

    
$producto = new Producto();
    
$productos $producto->eliminarproductos($_REQUEST['codigo']);
    

?>
modificar.php

Código PHP:
<script src="funciones-ajax.js" type="text/javascript"></script>   
</head>
<body>

<?php
$codigo 
'';
$codigo $_GET["codigo"];

$mysql=new mysqli("localhost","root","","carro_compras");

$registro=$mysql->query("select codigo, producto, descripcion, precio from productos where codigo='$codigo'") or
      die(
$mysql->error);

     if (
$reg=$registro->fetch_array()){


?>

<div id="modificar">

         Codigo <br/><input id="codigo" type="text" value="<?php echo $reg['codigo']; ?>"><br/><br/>
         Producto <br/><input id="producto" type="text" value="<?php echo $reg['producto']; ?>"><br/><br/> 
         Descripcion <br/><input id="descripcion" type="text" value="<?php echo $reg['descripcion']; ?>"><br/><br/>      
         Precio <br/><input id="precio" type="text" value="<?php echo $reg['precio']; ?>"><br/><br/>                  
      <input type="button" onclick="modificarDatos();" value="Enviar"/>

</div>

  <?php
    
}      
    else{

      echo 
'No existe un artículo con dicho código';
  }
    
    
$mysql->close();



  
?>
modificar2.php

Código PHP:
<?php
require ('core/core.php');

    
$producto = new Producto();
    
$productos $producto->updateproductos($_POST['codigo'],$_POST['producto'],$_POST['descripcion'],$_POST['precio']);


?>