Foros del Web » Programando para Internet » Javascript » Frameworks JS »

Eliminar Datos

Estas en el tema de Eliminar Datos en el foro de Frameworks JS en Foros del Web. Hola compañeros, se que he preguntado mucho ultimamente, pero han surgido algunas cosas donde paso mucho tiempo sin poder resolver. Tengo una tabla donde elimino ...
  #1 (permalink)  
Antiguo 10/03/2011, 21:17
 
Fecha de Ingreso: enero-2011
Ubicación: Maracaibo
Mensajes: 179
Antigüedad: 13 años, 3 meses
Puntos: 2
Pregunta Eliminar Datos

Hola compañeros, se que he preguntado mucho ultimamente, pero han surgido algunas cosas donde paso mucho tiempo sin poder resolver. Tengo una tabla donde elimino el dato seleccionando el codigo, el proceso de eliminacion lo hace, pero no refresca automaticamente.

Productos.js Este es el archivo donde estan las funciones JavaScript, AJAX

Código Javascript:
Ver original
  1. function objetoAjax(){
  2.     var xmlhttp=false;
  3.     try {
  4.         xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
  5.     } catch (e) {
  6.         try {
  7.            xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
  8.         } catch (E) {
  9.             xmlhttp = false;
  10.         }
  11.     }
  12.  
  13.     if (!xmlhttp && typeof XMLHttpRequest!='undefined') {
  14.         xmlhttp = new XMLHttpRequest();
  15.     }
  16.     return xmlhttp;
  17. }
  18.  
  19.  
  20. function enviarDatosProducto(){
  21.     //donde se mostrará lo resultados
  22.     divResultado = document.getElementById('productos');
  23.     //valores de los inputs
  24.     cod=document.productos.codigo.value;
  25.     pro=document.productos.proveedor.value;
  26.     doc=document.productos.documento.value;
  27.     cant=document.productos.cantidad.value;
  28.     /*mat=document.productos.material.value;
  29.     tac=document.productos.tacon.value;*/
  30.    
  31.    
  32.     //instanciamos el objetoAjax
  33.     ajax=objetoAjax();
  34.     //uso del metodo POST
  35.     //archivo que realizará la operacion
  36.     //registro.php
  37.     ajax.open("POST","productos.php",true);
  38.     ajax.onreadystatechange=function() {
  39.         if (ajax.readyState==4) {
  40.             //mostrar resultados en esta capa
  41.             divResultado.innerHTML = ajax.responseText
  42.             //llamar a funcion para limpiar los inputs
  43.             LimpiarCampos();
  44.         }
  45.     }
  46.     ajax.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
  47.     //enviando los valores
  48. /*+"&marca="+mar+"&modelo="+mod+"&color="+col+"&material="+mat+"&tacon="+tac*/
  49.     ajax.send("&codigo="+cod+"&proveedor="+pro+"&documento="+doc+"&cantidad="+cant)
  50.  
  51. }
  52.  
  53. function LimpiarCampos(){
  54.     document.productos.codigo.value="";
  55.     document.productos.proveedor.value="";
  56.     document.productos.documento.value="";
  57.     document.productos.cantidad.value="";
  58.     /*document.productos.material.value="";
  59.     document.productos.tacon.value="";*/
  60.     document.productos.codigo.focus();
  61. }
  62.  
  63. function eliminarDato(codigo){
  64.     //donde se mostrará el resultado de la eliminacion
  65.     divResult = document.getElementById('productos');
  66.    
  67.     //usaremos un cuadro de confirmacion   
  68.     var eliminar = confirm("De verdad desea eliminar este dato?")
  69.     if ( eliminar ) {
  70.         //instanciamos el objetoAjax
  71.         ajax=objetoAjax();
  72.         //uso del medotod GET
  73.         //indicamos el archivo que realizará el proceso de eliminación
  74.         //junto con un valor que representa el id del empleado
  75.         ajax.open("GET", "eliminacion.php?codigo="+codigo);
  76.         ajax.onreadystatechange=function() {
  77.             if (ajax.readyState==4) {
  78.                 //mostrar resultados en esta capa
  79.                 divResult.innerHTML = ajax.responseText
  80.             }
  81.         }
  82.         //como hacemos uso del metodo GET
  83.         //colocamos null
  84.         ajax.send(null)
  85.     }
  86. }

Productos.php aqui se hace la insercion de los datos, la consulta y la eliminacioncon el metodo onclick

Código PHP:

<?php

include('conex.php');
//consulta todos los empleados
$cod=$_POST['codigo'];
$pro=$_POST['proveedor'];
$doc=$_POST['documento'];
$cant=$_POST['cantidad'];
$item'001';
$tipdoc 'ORC';


/*$contar = "SELECT MAX(mov_item) FROM dpmovinv WHERE mov_docume = '$doc' AND mov_tipdoc='$tipdoc' AND mov_codcta='$pro'";
if ($contar=="0")
{
    $contar = $contar+1;
}
echo $contar;
*/
//echo $contar;

$sql=mysql_query("INSERT INTO dpmovinv(mov_codigo,mov_codcta,mov_docume,mov_cantid,mov_item,mov_tipdoc) VALUES ('$cod','$pro','$doc','$cant','$contar','$tipdoc')");
//$row = mysql_fetch_array($sql);


$sql1=mysql_query("SELECT mov_codigo,mov_codcta,mov_docume,mov_cantid,mov_item,mov_tipdoc,
                          inv_codmar,inv_modelo,inv_color,inv_materi,inv_tacon FROM dpmovinv 
                   INNER JOIN dpinv ON inv_codigo=mov_codigo WHERE mov_docume='$doc' AND mov_codcta='$pro'"
);

?>

<table style="border:1px solid #FF0000; color:#000;width:890px;">
<tr style="background:#1c68be;">
    <td>Codigo</td>
    <td>Proveedor</td>
    <td>Numero Fac</td>
    <td>Cantidad</td>
    <td>Item</td>
    <td>Tipo</td>
    <td>Descripcion</td>
    <td>Modelo</td>
    <td>Color</td>
    <td>Material</td>
    <td>Tacon</td>        
</tr>

<?php
while($row1 mysql_fetch_array($sql1))
{
    echo 
"    <tr>";
    echo 
"      <td><a style=\"text-decoration:underline;cursor:pointer;\" onclick=\"eliminarDato('".$row1['mov_codigo']."')\">".$row1['mov_codigo']."</a></td>";
    echo 
"      <td>".$row1['mov_codcta']."</td>";
    echo 
"      <td>".$row1['mov_docume']."</td>";
    echo 
"      <td>".$row1['mov_cantid']."</td>";
    echo 
"      <td>".$row1['mov_item']."</td>";
    echo 
"      <td>".$row1['mov_tipdoc']."</td>";
    echo 
"      <td>".$row1['inv_codmar']."</td>";
    echo 
"      <td>".$row1['inv_modelo']."</td>";
    echo 
"      <td>".$row1['inv_color']."</td>";
    echo 
"      <td>".$row1['inv_materi']."</td>";
    echo 
"      <td>".$row1['inv_tacon']."</td>";
    echo 
"    </tr>";
}
?>
</table>
Eliminar.php Aqui se hace el proceso de Eliminar
Código PHP:
<?php
include('conex.php');

//variable GET
$cod=$_GET['codigo'];

//elimina el registro de la tabla empleados
$sql="DELETE FROM dpmovinv WHERE mov_codigo='$cod'";

mysql_query($sql);

//include('productos.php');
?>
Formulario.php Este es el Front
Código HTML:
Ver original
  1. <script type="text/javascript" src="js/productos.js"></script>
  2.  
  3. <div style="width:220px;" >
  4. <form name="productos" action="" onsubmit="enviarDatosProducto(); return false">
  5.  
  6.       <table width="200" border="0">
  7.        <tr>
  8.         <td bgcolor="#CCCCCC" ><label>Codigo:</label></td>
  9.         <td bgcolor="#CCCCCC" ><label>
  10.           <input type="text" name="codigo" size="15" >
  11.         </label></td>
  12.         <td bgcolor="#CCCCCC" ><label>Proveedor:</label></td>
  13.         <td bgcolor="#CCCCCC" ><label><input type="text" name="proveedor" size="10" ></label></td>
  14.         <td bgcolor="#CCCCCC" ><label>Documento:</label></td>
  15.         <td bgcolor="#CCCCCC" ><label><input type="text" name="documento" size="10" ></label></td>
  16.         <td bgcolor="#CCCCCC" ><label>Cantidad</label></td>
  17.         <td bgcolor="#CCCCCC" ><label><input type="text" name="cantidad" size="10" ></label></td>
  18.         <!--<td bgcolor="#CCCCCC" ><label>Material</label></td>
  19.        <td bgcolor="#CCCCCC" ><label><input type="text" name="material" size="10" ></label></td>
  20.        <td bgcolor="#CCCCCC" ><label>Tacon</label></td>
  21.        <td bgcolor="#CCCCCC" ><label><input type="text" name="tacon" size="10" ></label></td>-->
  22.        </tr>
  23.            <input type="submit" name="Submit1" value="Grabar" />
  24.   </label>
  25.   <label>
  26.            <input type="submit" name="borrar" value="Cancelar" />
  27.   </label>
  28.   </form>
  29. </div>
  30. <p>    
  31. <div id="productos"><?php include('productos.php'); ?></div>

Todo este proceso lo hace bien, el problema esta que cuando presiono el codigo para eliminar la linea no me actualiza automaticamente, pero el registro si lo elimina. Espero puedan ayudarme.

P.D.: Como hago un contador que se sume en 1 de la forma: 0001 , 0002, 0003,

Saludos.
  #2 (permalink)  
Antiguo 12/03/2011, 13:41
 
Fecha de Ingreso: junio-2010
Ubicación: Venezuela, Zulia
Mensajes: 686
Antigüedad: 13 años, 10 meses
Puntos: 55
Respuesta: Eliminar Datos

claro que debe refrescar lo que pasa es que tu codigo

Código PHP:
<?php
include('conex.php');

//variable GET
$cod=$_GET['codigo'];

//elimina el registro de la tabla empleados
$sql="DELETE FROM dpmovinv WHERE mov_codigo='$cod'";

mysql_query($sql);

//include('productos.php');
?>
si solo muestra eso cuando elimina el resultado no le colocastes que mostrara nada y por ende deja la parte donde lo usas en blanco prueba por lo menos asi

Código PHP:
<?php
include('conex.php');

//variable GET
$cod=$_GET['codigo'];

//elimina el registro de la tabla empleados
$sql="DELETE FROM dpmovinv WHERE mov_codigo='$cod'";

mysql_query($sql);

//include('productos.php');

echo "DATO ELIMINADO";
?>
me avisas cualquier cosa
  #3 (permalink)  
Antiguo 13/03/2011, 10:08
 
Fecha de Ingreso: enero-2011
Ubicación: Maracaibo
Mensajes: 179
Antigüedad: 13 años, 3 meses
Puntos: 2
Pregunta Respuesta: Eliminar Datos

Hola johhan16, gracias por tu respuesta, hice lo que me dijiste y en el div me muestra el mensaje de DATO ELIMINADO, pero lo quiero es que me elimine directamente, es decir que en el GRID se quite el dato eliminado, asi como cuando guardo, sin recargar la pagina.

Una pregunta que me surgio ahorita, quiero eliminar pero le agregue otra condicion al WHERE en eliminacion.php

Código PHP:

include('conex.php');

//variable GET
$cod=$_GET['codigo']; 
$cadena=$_GET['cadena'];

$sql="DELETE FROM dpmovinv WHERE mov_codigo='$cod' AND mov_item='$cadena' ";

include(
'productos.php');

echo 
"DATO ELIMINADO"
Este es el archivo productos.js y aqui les coloco la linea que modifique, no se si esta bien asi, que estare haciendo mal?

Código Javascript:
Ver original
  1. ajax.open("GET", "eliminacion.php?codigo="+codigo+"&cadena="+cadena);

Saludos, espero puedas ayudarme.
  #4 (permalink)  
Antiguo 14/03/2011, 16:31
Avatar de alfcm  
Fecha de Ingreso: mayo-2009
Mensajes: 291
Antigüedad: 15 años
Puntos: 7
Respuesta: Eliminar Datos

agrega esta linea en este bloque de tu funcion eliminar

Código Javascript:
Ver original
  1. ajax.open("GET", "eliminacion.php?codigo="+codigo);
  2.  
  3.         ajax.onreadystatechange=function() {
  4.  
  5.             if (ajax.readyState==4) {
  6.  
  7.                 //mostrar resultados en esta capa
  8.  
  9.                 //divResult.innerHTML = ajax.responseText
  10.                 location.href='TU PATH/productos.php';
  11.                 // TU PATH es la ruta donde se encuentra tu archivo productos.php
  12.  
  13.             }
  14.  
  15.         }

Saludos
  #5 (permalink)  
Antiguo 14/03/2011, 18:52
 
Fecha de Ingreso: enero-2011
Ubicación: Maracaibo
Mensajes: 179
Antigüedad: 13 años, 3 meses
Puntos: 2
Respuesta: Eliminar Datos

Hola alfcm, probe lo que me comentaste y aun asi no me refresca la tabla sin el dato que elimine, pero seguire probando, creo que es por la consulta despues de eliminar, probare eso.

Pero tengo la otra duda, como le paso 2 parametros a la funcion eliminarDato , coloco de nuevo el codigo con los parametros que le quiero enviar al archivo eliminar.php y quiero que me digan en que estoy fallando

Código Javascript:
Ver original
  1. function eliminarDato(codigo,cadena){
  2.     //donde se mostrará el resultado de la eliminacion
  3.     divResultado = document.getElementById('productos');
  4.    
  5.     //usaremos un cuadro de confirmacion   
  6.     var eliminar = confirm("De verdad desea eliminar este dato?")
  7.     if ( eliminar ) {
  8.         //instanciamos el objetoAjax
  9.         ajax=objetoAjax();
  10.         //uso del medotod GET
  11.         //indicamos el archivo que realizará el proceso de eliminación
  12.         //junto con un valor que representa el id del empleado
  13.         ajax.open("GET", "eliminacion.php?codigo="+codigo+"&cadena="+cadena,true);
  14.         ajax.onreadystatechange=function() {
  15.             if (ajax.readyState==4) {
  16.                 //mostrar resultados en esta capa
  17.                 divResultado.innerHTML = ajax.responseText
  18.             }
  19.         }
  20.         //como hacemos uso del metodo GET
  21.         //colocamos null
  22.         ajax.send(null)
  23.     }

Aqui pongo la parte del codigo donde al hacer click en el prodcuto llama la funcion eliminar dato, creo que aqui es donde esta el problema, no se como meter otro parametro dentro del "onclick=\eliminarDato". Ahi esta el primer parametro que es MOV_CODIGO, como hago para agregarle MOV_ITEM, lo he puesto de varias maneras y aun no me fuciona.

Código PHP:

echo "      <td><a style=\"text-decoration:underline;cursor:pointer;\" onclick=\"eliminarDato('".$row1['mov_codigo']."')\">".$row1['mov_codigo']."</a></td>";
    echo 
"      <td>".$row1['mov_codcta']."</td>"
Saludos compañeros y espero puedan ayudarme.
  #6 (permalink)  
Antiguo 14/03/2011, 21:14
Avatar de ginitofl  
Fecha de Ingreso: diciembre-2006
Ubicación: Lima Perú
Mensajes: 349
Antigüedad: 17 años, 4 meses
Puntos: 22
Respuesta: Eliminar Datos

Hola para que te refresque en ajax tienes que agregarle un aleatorio de esta manera:
Código PHP:
var aleatorio=Math.random();
ajax=objetoAjax(); 
y para enviarlo has lo siguiente:

Código PHP:
ajax.open("GET""eliminacion.php?codigo="+codigo"&aleatorio="+aleatorio); 

saludos.
  #7 (permalink)  
Antiguo 17/03/2011, 17:36
 
Fecha de Ingreso: enero-2011
Ubicación: Maracaibo
Mensajes: 179
Antigüedad: 13 años, 3 meses
Puntos: 2
Respuesta: Eliminar Datos

Hola ginitofl, probe lo ultimo que me dijiste, pero tengo una duda de a donde voy a enviar la variable aletorio, mi codigo PHP esta aqui:

productos.php //aqui es donde me muestra la tabla y al lado una X en cada item para eliminar

Código PHP:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=latin2" />
<title>Orden de Compra</title>
</head>


<style>
#totales 
{
    text-align:center;
    position: relative;  
    width:200px;
    left:710px;
    margin-left:-200px;
    top: 75px;
}

.table {
width: 690px;
text-align: left;
background: white;
}

.table tr:nth-child(2n+1) {
background-color: #CCCCCC;
color:white;
}
</style>
<body>
<?php

include('conex.php');

//consulta todos los empleados
$cod=$_POST['codigo'];
$pro=$_POST['proveedor'];
$doc=$_POST['documento'];
$cant=$_POST['cantidad'];
$redondear=2;
$tipdoc 'ORC';
date_default_timezone_set('America/Caracas');
$hora date("H:i:s");
$fecha date("Y/m/d");
$codtra='S000';
$undmed='UND';
$export=0;
$iva=12;
$mov_tipo='I';
$mov_lista='A';
$mov_tipiva='GN';
$mov_impotr=0;
$mov_import=0;
$mov_invact=1;
$mov_cxund=1;
$mov_nummem=0;
$mov_codsuc='000001';
$mov_codalm='001';
$mov_fisico=0;
$mov_logico=0;
$mov_contab=0;
$mov_aplorg='C';
$mov_cencos='00000001';
$mov_mtocom=0;
$mov_imppro=0;
$mov_expend=0;
$mov_banda=0;
$mov_codcom="";
$mov_item_a="";

//consulta para sacar el mayor del campo MOV_ITEM
$contar "SELECT MAX(mov_item) FROM dpmovinv WHERE mov_docume = '$doc' AND mov_tipdoc='$tipdoc' AND mov_codcta='$pro'";
$contador mysql_query($contar);
$total mysql_result($contador,0,0); //Guardo el Resultado de la Consulta con mysql_result
$cadena intval($total) + 1//incremento en 1 el resultado de la variable $total
$cadena sprintf("%05s"$cadena); //relleno de 0 a la izquierda

//echo $cadena;
//$num='0001';
//for($i=intval($num);$i<20;$i++)echo '<br />'.sprintf("%04s",$i);
if ($cod<>"")
{
$precios mysql_query("SELECT pre_precio FROM dpprecios WHERE pre_lista = 'A' AND pre_codigo = '$cod'");
$pre=mysql_result($precios,0,0);
//echo $pre;
}

$mov_total $cant $pre;

$sql=mysql_query("INSERT INTO dpmovinv(mov_codigo,mov_codcom,mov_codcta,mov_docume,mov_fecha,mov_cantid,mov_item,mov_tipdoc,
                   mov_codtra,mov_undmed,mov_export,mov_iva,mov_tipo,mov_lista,mov_costo,mov_total,mov_hora,mov_tipiva,
                   mov_impotr,mov_invact,mov_cxund,mov_nummem,mov_codsuc,mov_codalm,mov_fisico,mov_logico,mov_contab,
                   mov_aplorg,mov_cencos,mov_mtocom,mov_imppro,mov_expend,mov_import,mov_banda,mov_item_a) 
                  VALUES ('$cod','$mov_codcom','$pro','$doc','$fecha','$cant','$cadena','$tipdoc','$codtra','$undmed','$export','$iva',
                          '$mov_tipo','$mov_lista','$pre','$mov_total','$hora','$mov_tipiva','$mov_impotr','$mov_invact',
                          '$mov_cxund','$mov_nummem','$mov_codsuc','$mov_codalm','$mov_fisico','$mov_logico','$mov_contab',
                          '$mov_aplorg','$mov_cencos','$mov_mtocom','$mov_imppro','$mov_expend','$mov_import',                  
                          '$mov_banda','$mov_item_a')"
);
//$row = mysql_fetch_array($sql);


$sql1=mysql_query("SELECT mov_codigo,mov_codcta,mov_docume,mov_cantid,mov_item,mov_tipdoc,
                          inv_codmar,inv_modelo,inv_color,inv_materi,inv_tacon,pre_precio FROM dpmovinv 
                   INNER JOIN dpinv ON inv_codigo=mov_codigo 
                   INNER JOIN dpprecios ON pre_codigo=mov_codigo
                   WHERE mov_docume='$doc' AND mov_codcta='$pro' AND pre_lista = 'A'
                   ORDER BY mov_item ASC "
);
                   
$neto=mysql_query("SELECT SUM(mov_total) as total FROM dpmovinv WHERE mov_docume='$doc' AND mov_tipdoc='$tipdoc'");                   
$total_neto=mysql_result($neto,0,0);
$total_iva round(($total_neto*$iva)/100,$redondear);
$total_pagar$total_neto $total_iva;
?>


<div>
<!-- style="border:1px solid ; color:#000;width:850px;"-->
<table class="table" >
<tr style="background:#1c68be;">
    <td>Codigo</td>
    <!--<td>Proveedor</td>
    <td>Numero Fac</td>-->
    <!--<td>Item</td>
    <td>Tipo</td> -->
    <td>Descripcion</td>
    <td>Modelo</td>
    <td>Color</td>
    <td>Material</td>
    <td>Tacon</td>
    <td>Cantidad</td>
    <td>Precio</td>
    <td></td>        
</tr>

<?php
while($row1 mysql_fetch_array($sql1))
{
 echo 
"<tr>";
 echo 
" <td>".$row1['mov_codigo']."</a></td>";
 
//echo " <td>".$row1['mov_codcta']."</td>";
 //echo " <td>".$row1['mov_docume']."</td>";
 //echo " <td>".$row1['mov_item']."</td>";
 //echo " <td>".$row1['mov_tipdoc']."</td>";
 
echo " <td>".$row1['inv_codmar']."</td>";
 echo 
" <td>".$row1['inv_modelo']."</td>";
 echo 
" <td>".$row1['inv_color']."</td>";
 echo 
" <td>".$row1['inv_materi']."</td>";
 echo 
" <td>".$row1['inv_tacon']."</td>";
 echo 
" <td>".$row1['mov_cantid']."</td>";
 echo 
" <td>".$row1['pre_precio']."</td>";
 echo 
" <td><a style=\"text-decoration:underline;cursor:pointer;\" 
        onclick=\"eliminarDato('"
.$row1['mov_codigo']."')\">
        <img src='xcancel.bmp' width='16' height='16'>"
."</a></td>";
    echo 
"    </tr>";
}
?>
</table>
</div>
<p>
 <div id="totales" >
 <table style="border:1px solid ; color:#000;width:180px;" >
      <tr style="background:#CCCCCC; font-family:Tahoma, Geneva, sans-serif">
     <td>Neto</td>
     <td align="right"><?php echo $total_neto ?></td> 
    </tr>
   <tr style="background:#CCCCCC; font-family:Tahoma, Geneva, sans-serif">
     <td>Iva</td>
     <td align="right"><?php echo $total_iva ?></td> 
    </tr>
     <tr style="background:#CCCCCC; font-family:Tahoma, Geneva, sans-serif">
    <td>Total Neto</td>
    <td align="right"><?php echo $total_pagar ?></td>
    </tr>
   </table>
 </div>

</body>
</html>
Mi codigo AJAX con la funcion Eliminar donde le agregue la variable aleatorio que me sugeriste.

Código Javascript:
Ver original
  1. function objetoAjax(){
  2.     var xmlhttp=false;
  3.     try {
  4.         xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
  5.     } catch (e) {
  6.         try {
  7.            xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
  8.         } catch (E) {
  9.             xmlhttp = false;
  10.         }
  11.     }
  12.  
  13.     if (!xmlhttp && typeof XMLHttpRequest!='undefined') {
  14.         xmlhttp = new XMLHttpRequest();
  15.     }
  16.     return xmlhttp;
  17. }
  18.  
  19.  
  20. function enviarDatosProducto(){
  21.     divResultado = document.getElementById('productos');
  22.     cod=document.productos.codigo.value;
  23.     pro=document.productos.proveedor.value;
  24.     doc=document.productos.documento.value;
  25.     cant=document.productos.cantidad.value;
  26.     /*mat=document.productos.material.value;
  27.     tac=document.productos.tacon.value;*/
  28.    
  29.     ajax=objetoAjax();
  30.     ajax.open("POST","productos.php",true);
  31.     ajax.onreadystatechange=function() {
  32.         if (ajax.readyState==4) {
  33.             divResultado.innerHTML = ajax.responseText
  34.             LimpiarCampos();
  35.         }
  36.     }
  37.     ajax.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
  38. /*+"&marca="+mar+"&modelo="+mod+"&color="+col+"&material="+mat+"&tacon="+tac*/
  39.     ajax.send("&codigo="+cod+"&proveedor="+pro+"&documento="+doc+"&cantidad="+cant)
  40.    
  41. }
  42.  
  43. function LimpiarCampos(){
  44.     document.productos.codigo.value="";
  45.     /*document.productos.proveedor.value="";
  46.     document.productos.documento.value="";*/
  47.     document.productos.cantidad.value="";
  48.     /*document.productos.material.value="";
  49.     document.productos.tacon.value="";*/
  50.     document.productos.codigo.focus();
  51. }
  52.  
  53. function eliminarDato(codigo,aleatorio){
  54.     divResultado = document.getElementById('productos');
  55.    
  56.     var aleatorio=Math.random();
  57.     var eliminar = confirm("De verdad desea eliminar este dato?")
  58.     if ( eliminar ) {
  59.         ajax=objetoAjax();
  60.         ajax.open("GET", "eliminacion.php?codigo="+codigo+"&aleatorio="+aleatorio,true);
  61.         ajax.onreadystatechange=function() {
  62.             if (ajax.readyState==4) {
  63.                 //mostrar resultados en esta capa
  64.                 divResultado.innerHTML = ajax.responseText
  65.             }
  66.         }
  67.         ajax.send(null)
  68.     }
  69. }

Y este es el codigo PHP donde se ejecuta el query que va a eliminar:

Código PHP:

<?php
include('conex.php');

$cod=$_GET['codigo'];

$sql="DELETE FROM dpmovinv WHERE mov_codigo='$cod' ";


mysql_query($sql);

include(
'productos.php');

echo 
"DATO ELIMINADO"
?>

Espero puedas ayudarme, ademas quiero pasarle otro parametro ya que debo tener dos condiciones para eliminar el dato y no se como hacerlo

Saludos
  #8 (permalink)  
Antiguo 17/03/2011, 18:23
 
Fecha de Ingreso: septiembre-2010
Mensajes: 53
Antigüedad: 13 años, 7 meses
Puntos: 4
Respuesta: Eliminar Datos

parce seria menjor dentro de el div donde vas a mostrar el resultado que sea el mismo donde estas mostrando los datos a eliminar y solo cunado lo eliminese ne le php recorres mostrando de nuevo y listo lo devuelve el resultado en el div
  #9 (permalink)  
Antiguo 17/03/2011, 18:45
 
Fecha de Ingreso: junio-2010
Ubicación: Venezuela, Zulia
Mensajes: 686
Antigüedad: 13 años, 10 meses
Puntos: 55
Respuesta: Eliminar Datos

ok vamos por parte para que te salga todo bien

1.- para que te recargue parte de la pagina primero debes colocar un DIV con un ID que haga referencia a la parte de la pagina que quieres que te recargue ej:

Código PHP:
<?php session_start(); ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=latin2" />
<title>Orden de Compra</title>
</head>


<style>
#totales 
{
    text-align:center;
    position: relative;  
    width:200px;
    left:710px;
    margin-left:-200px;
    top: 75px;
}

.table {
width: 690px;
text-align: left;
background: white;
}

.table tr:nth-child(2n+1) {
background-color: #CCCCCC;
color:white;
}
</style>
<body>
<?php

include('conex.php');

//consulta todos los empleados
$cod=$_POST['codigo'];
$pro=$_POST['proveedor'];
$doc=$_POST['documento'];

$_SESSION['pro'] = $pro;
$_SESSION['doc'] = $doc;

$cant=$_POST['cantidad'];
$redondear=2;
$tipdoc 'ORC';
date_default_timezone_set('America/Caracas');
$hora date("H:i:s");
$fecha date("Y/m/d");
$codtra='S000';
$undmed='UND';
$export=0;
$iva=12;
$mov_tipo='I';
$mov_lista='A';
$mov_tipiva='GN';
$mov_impotr=0;
$mov_import=0;
$mov_invact=1;
$mov_cxund=1;
$mov_nummem=0;
$mov_codsuc='000001';
$mov_codalm='001';
$mov_fisico=0;
$mov_logico=0;
$mov_contab=0;
$mov_aplorg='C';
$mov_cencos='00000001';
$mov_mtocom=0;
$mov_imppro=0;
$mov_expend=0;
$mov_banda=0;
$mov_codcom="";
$mov_item_a="";

//consulta para sacar el mayor del campo MOV_ITEM
$contar "SELECT MAX(mov_item) FROM dpmovinv WHERE mov_docume = '$doc' AND mov_tipdoc='$tipdoc' AND mov_codcta='$pro'";
$contador mysql_query($contar);
$total mysql_result($contador,0,0); //Guardo el Resultado de la Consulta con mysql_result
$cadena intval($total) + 1//incremento en 1 el resultado de la variable $total
$cadena sprintf("%05s"$cadena); //relleno de 0 a la izquierda

//echo $cadena;
//$num='0001';
//for($i=intval($num);$i<20;$i++)echo '<br />'.sprintf("%04s",$i);
if ($cod<>"")
{
$precios mysql_query("SELECT pre_precio FROM dpprecios WHERE pre_lista = 'A' AND pre_codigo = '$cod'");
$pre=mysql_result($precios,0,0);
//echo $pre;
}

$mov_total $cant $pre;

$sql=mysql_query("INSERT INTO dpmovinv(mov_codigo,mov_codcom,mov_codcta,mov_docume,mov_fecha,mov_cantid,mov_item,mov_tipdoc,
                   mov_codtra,mov_undmed,mov_export,mov_iva,mov_tipo,mov_lista,mov_costo,mov_total,mov_hora,mov_tipiva,
                   mov_impotr,mov_invact,mov_cxund,mov_nummem,mov_codsuc,mov_codalm,mov_fisico,mov_logico,mov_contab,
                   mov_aplorg,mov_cencos,mov_mtocom,mov_imppro,mov_expend,mov_import,mov_banda,mov_item_a) 
                  VALUES ('$cod','$mov_codcom','$pro','$doc','$fecha','$cant','$cadena','$tipdoc','$codtra','$undmed','$export','$iva',
                          '$mov_tipo','$mov_lista','$pre','$mov_total','$hora','$mov_tipiva','$mov_impotr','$mov_invact',
                          '$mov_cxund','$mov_nummem','$mov_codsuc','$mov_codalm','$mov_fisico','$mov_logico','$mov_contab',
                          '$mov_aplorg','$mov_cencos','$mov_mtocom','$mov_imppro','$mov_expend','$mov_import',                  
                          '$mov_banda','$mov_item_a')"
);
//$row = mysql_fetch_array($sql);


$sql1=mysql_query("SELECT mov_codigo,mov_codcta,mov_docume,mov_cantid,mov_item,mov_tipdoc,
                          inv_codmar,inv_modelo,inv_color,inv_materi,inv_tacon,pre_precio FROM dpmovinv 
                   INNER JOIN dpinv ON inv_codigo=mov_codigo 
                   INNER JOIN dpprecios ON pre_codigo=mov_codigo
                   WHERE mov_docume='$doc' AND mov_codcta='$pro' AND pre_lista = 'A'
                   ORDER BY mov_item ASC "
);
                   
$neto=mysql_query("SELECT SUM(mov_total) as total FROM dpmovinv WHERE mov_docume='$doc' AND mov_tipdoc='$tipdoc'");                   
$total_neto=mysql_result($neto,0,0);
$total_iva round(($total_neto*$iva)/100,$redondear);
$total_pagar$total_neto $total_iva;
?>



<!-- style="border:1px solid ; color:#000;width:850px;"-->
<table class="table" >
<tr style="background:#1c68be;">
    <td>Codigo</td>
    <!--<td>Proveedor</td>
    <td>Numero Fac</td>-->
    <!--<td>Item</td>
    <td>Tipo</td> -->
    <td>Descripcion</td>
    <td>Modelo</td>
    <td>Color</td>
    <td>Material</td>
    <td>Tacon</td>
    <td>Cantidad</td>
    <td>Precio</td>
    <td></td>        
</tr>
<div id="eliminar">
<?php
while($row1 mysql_fetch_array($sql1))
{
 echo 
"<tr>";
 echo 
" <td>".$row1['mov_codigo']."</a></td>";
 
//echo " <td>".$row1['mov_codcta']."</td>";
 //echo " <td>".$row1['mov_docume']."</td>";
 //echo " <td>".$row1['mov_item']."</td>";
 //echo " <td>".$row1['mov_tipdoc']."</td>";
 
echo " <td>".$row1['inv_codmar']."</td>";
 echo 
" <td>".$row1['inv_modelo']."</td>";
 echo 
" <td>".$row1['inv_color']."</td>";
 echo 
" <td>".$row1['inv_materi']."</td>";
 echo 
" <td>".$row1['inv_tacon']."</td>";
 echo 
" <td>".$row1['mov_cantid']."</td>";
 echo 
" <td>".$row1['pre_precio']."</td>";
 echo 
" <td><a style=\"text-decoration:underline;cursor:pointer;\" 
        onclick=\"eliminarDato('"
.$row1['mov_codigo']."')\">
        <img src='xcancel.bmp' width='16' height='16'>"
."</a></td>";
    echo 
"    </tr>";
}
?>
</div>
</table>
<p>
 <div id="totales" >
 <table style="border:1px solid ; color:#000;width:180px;" >
      <tr style="background:#CCCCCC; font-family:Tahoma, Geneva, sans-serif">
     <td>Neto</td>
     <td align="right"><?php echo $total_neto ?></td> 
    </tr>
   <tr style="background:#CCCCCC; font-family:Tahoma, Geneva, sans-serif">
     <td>Iva</td>
     <td align="right"><?php echo $total_iva ?></td> 
    </tr>
     <tr style="background:#CCCCCC; font-family:Tahoma, Geneva, sans-serif">
    <td>Total Neto</td>
    <td align="right"><?php echo $total_pagar ?></td>
    </tr>
   </table>
 </div>

</body>
</html>

luego el codigo ajax le quite lo de random
Código HTML:
function objetoAjax(){
    var xmlhttp=false;
    try {
        xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
    } catch (e) {
        try {
           xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
        } catch (E) {
            xmlhttp = false;
        }
    }
 
    if (!xmlhttp && typeof XMLHttpRequest!='undefined') {
        xmlhttp = new XMLHttpRequest();
    }
    return xmlhttp;
}
 
 
function enviarDatosProducto(){
    divResultado = document.getElementById('productos');
    cod=document.productos.codigo.value;
    pro=document.productos.proveedor.value;
    doc=document.productos.documento.value;
    cant=document.productos.cantidad.value;
    /*mat=document.productos.material.value;
    tac=document.productos.tacon.value;*/
    
    ajax=objetoAjax();
    ajax.open("POST","productos.php",true);
    ajax.onreadystatechange=function() {
        if (ajax.readyState==4) {
            divResultado.innerHTML = ajax.responseText
            LimpiarCampos();
        }
    }
    ajax.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
/*+"&marca="+mar+"&modelo="+mod+"&color="+col+"&material="+mat+"&tacon="+tac*/
    ajax.send("&codigo="+cod+"&proveedor="+pro+"&documento="+doc+"&cantidad="+cant)
    
}
 
function LimpiarCampos(){
    document.productos.codigo.value="";
    /*document.productos.proveedor.value="";
    document.productos.documento.value="";*/
    document.productos.cantidad.value="";
    /*document.productos.material.value="";
    document.productos.tacon.value="";*/
    document.productos.codigo.focus();
}
 
function eliminarDato(codigo){
    divResultado = document.getElementById('eliminar');
    
    var eliminar = confirm("De verdad desea eliminar este dato?")
    if ( eliminar ) {
        ajax=objetoAjax();
        ajax.open("GET", "eliminacion.php?codigo="+codigo);
        ajax.onreadystatechange=function() {
            if (ajax.readyState==4) {
                //mostrar resultados en esta capa
                divResultado.innerHTML = ajax.responseText
            }
        }
        ajax.send(null)
    }
}

y el codigo php donde se elimina el dato lo coloque asi

Código PHP:
<?php
session_start
();
include(
'conex.php');

$pro $_SESSION['pro'];
$doc $_SESSION['doc'];

$cod=$_GET['codigo'];

$sql="DELETE FROM dpmovinv WHERE mov_codigo='$cod' ";
mysql_query($sql);


$sql1=mysql_query("SELECT mov_codigo,mov_codcta,mov_docume,mov_cantid,mov_item,mov_tipdoc,
                          inv_codmar,inv_modelo,inv_color,inv_materi,inv_tacon,pre_precio FROM dpmovinv 
                   INNER JOIN dpinv ON inv_codigo=mov_codigo 
                   INNER JOIN dpprecios ON pre_codigo=mov_codigo
                   WHERE mov_docume='$doc' AND mov_codcta='$pro' AND pre_lista = 'A'
                   ORDER BY mov_item ASC "
);
                   
while(
$row1 mysql_fetch_array($sql1))
{
 echo 
"<tr>";
 echo 
" <td>".$row1['mov_codigo']."</a></td>";
 echo 
" <td>".$row1['inv_codmar']."</td>";
 echo 
" <td>".$row1['inv_modelo']."</td>";
 echo 
" <td>".$row1['inv_color']."</td>";
 echo 
" <td>".$row1['inv_materi']."</td>";
 echo 
" <td>".$row1['inv_tacon']."</td>";
 echo 
" <td>".$row1['mov_cantid']."</td>";
 echo 
" <td>".$row1['pre_precio']."</td>";
 echo 
" <td><a style=\"text-decoration:underline;cursor:pointer;\" 
        onclick=\"eliminarDato('"
.$row1['mov_codigo']."')\">
        <img src='xcancel.bmp' width='16' height='16'>"
."</a></td>";
    echo 
"    </tr>";
}
?>
fijate a ver si te funciona asi y me avisas, ah por cierto tambien cree una session para jalar los datos de $pro y $doc

edito: me falto actualizar una parte del codigo ajax

Última edición por johhan16; 17/03/2011 a las 18:50
  #10 (permalink)  
Antiguo 18/03/2011, 10:07
 
Fecha de Ingreso: enero-2011
Ubicación: Maracaibo
Mensajes: 179
Antigüedad: 13 años, 3 meses
Puntos: 2
Respuesta: Eliminar Datos

Hola johhan16, probe todo eso, primero que nada me da error con las variables de session: Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at C:\xampp\htdocs\pruebas\dpmovinv\formulario.php:66 ) in C:\xampp\htdocs\pruebas\dpmovinv\productos.php on line 1.

el error me lo da en la linea 64 del formulario de donde envio los datos, aqui esta el codigo:

formulario.php

Código PHP:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=latin2" />
<title>Orden de Compra</title>
</head>
<script type="text/javascript" src="js/productos.js"></script>
<script type="text/javascript" src="js/jquery.js"></script>

<script type="text/javascript">
$(document).ready(function(){
     
    $(".campos_vacio .cerrar").click(function(){
        $(this).parents(".campos_vacio").animate({ opacity: 'hide' }, "slow");
    });
    
});
</script>

<style>
 #CacelarOrdenCompra
 {
    
     position: relative;
      width:95px;
 }
 #GuardarOrdenCompra
 {
    position: relative;
    width:95px;
    left: 100px;
    top: -85px;
 }

.campos_vacio {
    margin:5px 5px;
    background:#CCCCCC; /*#F5E38E*/
    border:2px solid #6d8693; /*#EBCA4F*/
    padding:10px;
    width:300px;
    position: relative;
    display:none;
    }
.campos_vacio .cerrar {
    position: absolute;
    top: 9px;
    right: 11px;
    cursor: pointer;
}
h2 { color:#ff0000; font-size:15px; }
p { font-size:11px; padding: 0 0 11px; color:#333; }
a { color:#ff8400; }
body { 
font-family:verdana, arial;
font-size:13px;
}
</style>

<body>
<div style="height:80px; width:890px; font-family: 'Lucida Sans Unicode', 'Lucida Grande', sans-serif; font-size:13px " >
<table width="562">  
  <tr>
   <td width="10" colspan="1"  bgcolor="#CCCCCC">Codigo: </td>
   <td bgcolor="#CCCCCC"><strong> <?php echo $_POST['codigo_proveedor'?></strong></td>
   <td bgcolor="#CCCCCC">Proveedor: </td>
   <td bgcolor="#CCCCCC"><strong> <?php echo $_POST['nomproveedor'?></strong></td>
  </tr>
   <td colspan="2" bgcolor="#CCCCCC">E-mail: <strong> <?php echo $_POST['email'?></strong></td>
   <td colspan="4" bgcolor="#CCCCCC">Condici&oacute;n: <strong> <?php echo $_POST['condicion'?></strong></td>
   <!-- <td>Dirección: <strong> <?php echo $_POST['direccion'?> </strong>
   <p></td> -->
  <tr> 
   <td colspan="4" bgcolor="#CCCCCC">N&uacute;mero de Orden: <strong> <?php echo $_POST['numero'?></strong></td>
  </tr>
</table>
</div>

<p>
<div style="width:600px;" >
<form name="productos" action="" onsubmit="enviarDatosProducto(); return false">

      <table width="595" border="0">
       <tr>
        <td width="48" bgcolor="#CCCCCC" ><label>Codigo:</label></td>
        <td width="42" bgcolor="#CCCCCC" ><label>
          <input type="text" name="codigo" size="7" maxlength="7" >
        </label></td>
        <td width="67" bgcolor="#CCCCCC" ><label>Proveedor:</label></td>
        <td width="60" bgcolor="#CCCCCC" ><label><input type="text" name="proveedor" size="10" value="<?php echo $_POST['codigo_proveedor'?>" readonly="readonly" disabled="disabled"  ></label></td>
        <td width="73" bgcolor="#CCCCCC" ><label>Documento:</label></td>
        <td width="60" bgcolor="#CCCCCC" ><label><input type="text" name="documento" size="10" value="<?php echo $_POST['numero'?>" readonly="readonly" disabled="disabled"  ></label></td>
        <td width="55" bgcolor="#CCCCCC" ><label>Cantidad</label></td>
        <td width="60" bgcolor="#CCCCCC" ><label><input type="text" name="cantidad" size="10" ></label></td>
        <td width="85" bgcolor="#CCCCCC" ><label>
          <input type="submit" name="Submit1" value="Agregar"  />
        </label></td>
        <!--<td bgcolor="#CCCCCC" ><label>Material</label></td>
        <td bgcolor="#CCCCCC" ><label><input type="text" name="material" size="10" ></label></td>
        <td bgcolor="#CCCCCC" ><label>Tacon</label></td>
        <td bgcolor="#CCCCCC" ><label><input type="text" name="tacon" size="10" ></label></td>-->
       </tr> 
</table>
     <!-- <input type="submit" name="Submit1" value="Grabar" /> -->
    
  </form>
  
  </div>
  
<div id="campos_vacio" class="campos_vacio"  >
   <label>Debe llenar todos los campos del Formulario</label>
<span id="cerrar" class="cerrar"  >  <img src="cerrar.jpg" alt="cerrar" class="eliminar" width="16" height="16" /></span>   

</div>

<p>    
<div id="productos">
  <?php include('productos.php'); ?>
</div>



<div id="CacelarOrdenCompra"  >
<form name="borrar_productos" action="eliminar_orden_compra.php" method="post" >
 <input type="hidden" name="num_documento" size="10" value="<?php echo $_POST['numero'?>">
  
         <input type="image" name="borrar" value="Cancelar Orden de Compra" src="cerrar.jpg" width="50" height="50" /> 
     
  </form>
</div>
<p>
<div id="GuardarOrdenCompra">
<form name="guardar_ecabezado" action="guardar_ecabezado.php" method="post" >
<input type="hidden" name="cod_proveedor" size="10" value="<?php echo $_POST['codigo_proveedor'?>"  > 
<input type="hidden" name="num_documento" size="10" value="<?php echo $_POST['numero'?>"  >
  
     <input type="image" name="borrar" value="Guardar Orden de Compra" src="images1.jpg" width="50" height="50" /> 
  
  </form>

</div>


</body>
</html>
Con las modificaciones que le hice con tu ayuda, me elimina y me devuelve el resultado sin recargar la pagina, el problema es que cuando ingreso los datos me crea la consulta en el DIV "productos" y cuando elimino me crea la consulta en el DIV "eliminar", con el resultado es que tengo los 2 DIV en la misma pantalla con los 2 resultados.

La idea es como ocultar el DIV donde se ingresan los datos y mostrar el de eliminar y al volver a ingresar datos ocultar el de eliminar y mostrar el de productos, no se si me explique.

Con respecto a las variables de session soy completamente nuevo en eso, nunca las he utilizado y no se xq me causa ese warning.

Saludos
  #11 (permalink)  
Antiguo 18/03/2011, 13:26
 
Fecha de Ingreso: enero-2011
Ubicación: Maracaibo
Mensajes: 179
Antigüedad: 13 años, 3 meses
Puntos: 2
Respuesta: Eliminar Datos

Hola compañeros, investigue sobre las variables de session y ya resolvi el problema del Warning, tenia que agregar al inicio del archivo formulario.php el session_start(); y con eso ya se soluciono.

johhan16 con respecto a lo otro sigo igual

Saludos
  #12 (permalink)  
Antiguo 21/03/2011, 10:44
 
Fecha de Ingreso: junio-2010
Ubicación: Venezuela, Zulia
Mensajes: 686
Antigüedad: 13 años, 10 meses
Puntos: 55
Respuesta: Eliminar Datos

ok, por lo que lei ya te funciona bien, lo que quieres es ya otra cosa.

te explico como te haz dado cuenta cada capa representa como un bloque dentro de la pagina en si, entonces si yo quiero que al eliminar solo se muestre la capa de eliminar haria una capa global

algo como

Código HTML:
<div id="global">
<div id="productos">

<!--
AQUI VA EL CODIGO DE PRODUCTOS
-->

</div>
<div id="eliminar">

<!--
AQUI VA EL CODIGO DE ELIMINAR
-->

</div>
</div> 
y tendrias que modificar en el ajax la parte de
divResultado = document.getElementById('eliminar');
y colocar
divResultado = document.getElementById('global');

algo asi es mas o menos de pronto falte alguna que otra cosa por arreglar pero tambien hay que dejarte algo de trabajo a ti

Etiquetas: ajax
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 18:43.