La pagina con la que estoy trabajando se divide hasta el momento en tres secciones y las tres funcionan correctamente:
1. Carga de datos de una tabla de mysql apoyado de la función rellena_linea, esta completa algunos list y al seleccionar algun valor rellena otros textfields
2. Almacenamiento de datos apoyados de la funcion agrega_linea (esta se ejecuta desde un boton que guada los valores de la funcion anterior), esta ultima ademas de almacenar en una tabla de mysql muestra los datos resguardados en una tabla que se pinta dentro de la misma funcion.
Todo esto funciona muy bien el tema esta que ahora lo que requiero hacer es poder eliminar desde la tabla que esta mostrando los datos algun registro guardado sin que se recargue la pagina el problema esta en que no se como debo crear esta ultima funcion debido a que la variable que recibirá no siempre sera la misma.
Les coloco algo de codigo para que loo entiendan un poco mejor:
no tiene caso mostrar como cargo los datos a los textfield y eso les mostrare desde que resguardo en la bd y muestro la tabla en la que necesito agregar la funcion de eliminar registro:
Código PHP:
//esta es la funcion que guarda en la bd y muestra la tabla
function validafphp3($ajax_extrae_clave ,$ajax_txt_no_oc, $ajax_sel_prov, $ajax_txt_clave_linea, $ajax_cantidad_linea, $ajax_precio_linea, $ajax_descuentox_linea, $ajax_fecha_oc)
{
if($ajax_txt_no_oc!="") // Lo primero que hacemos es crear el numero de orden de compra
{
$connection = mysql_connect("localhost","xxxxx","xxxxx") or die ("Error de conexión");
$db = mysql_select_db("u73937_cstore", $connection) or die ("Unable to get requested database");
$res_existe = mysql_query("SELECT * FROM no_oc WHERE desc_oc = '$ajax_txt_no_oc' AND tienda_oc = '$ajax_extrae_clave'");
$total_reg_existe = mysql_num_rows($res_existe);
if(!$total_reg_existe) //SI NO EXISTE LA OC LA CREAMOS
{
//CALCULO CLAVE DE ORDEN DE COMPRA
$i=0;
$clv_oc= "";
srand((double)microtime()*1000000);
$block1 = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
$block1 .= "abcdefghijklmnopqrstuvwxyz";
$block1 .= "0123456789";
for($i = 0; $i < 20; $i++)
{
$clv_oc .= substr($block1,(rand()%(strlen($block1))), 1);
}
//FIN DEL CALCULO
$query1="INSERT INTO no_oc VALUES (NULL,'$clv_oc','$ajax_txt_no_oc','$ajax_extrae_clave')";
mysql_query($query1) or die (mysql_error());
} //CERRAMOS if(!$total_reg_existe)
else //SI YA EXISTE LO UNICO QUE HAGO ES TRAERME LA CLAVE DE LA ORDEN DE COMPRA
{
while($coc=mysql_fetch_array($res_existe))
{
$clv_oc= $coc["clave_oc"];
}
} //CIERRO ELSE QUE TRAJO EL NUMERO DE LA ORDEN DE COMPRA
} //cierra if($ajax_txt_no_oc!="")
if($ajax_txt_clave_linea!="") // El segundo paso es completar el detalle de la linea agregada
{
//COMO EL TOTAL SE CALCULA DENTRO DE OTRA FUNCION LO CALCULO NUEVAMENTE
$total=0;
$tot_des = (($ajax_cantidad_linea * $ajax_precio_linea)*$ajax_descuentox_linea)/100;
$total = (($ajax_cantidad_linea * $ajax_precio_linea)-$tot_des);
//TERMINO DE CALCULAR EL TOTAL DE LA LINEA
$query_addlinea="INSERT INTO detalle_oc VALUES (NULL,'$clv_oc','$ajax_txt_clave_linea','$ajax_cantidad_linea','$ajax_precio_linea','$ajax_descuentox_linea','$total')";
mysql_query($query_addlinea) or die (mysql_error());
} // Cierra el if($ajax_txt_clave_linea!="")
if($ajax_sel_prov!="") //El tercer paso es completar los datos generales de la orden de compra
{
//NECESITO CONOCER EL TOTAL ACTUAL DE LA ORDEN DE COMPRA
$query_cal_totoc = mysql_query("SELECT * FROM detalle_oc WHERE clave_oc = '$clv_oc'");
$total_cal_totoc = mysql_num_rows($query_cal_totoc);
$gran_total=0;
if($total_cal_totoc)
{
while($cal_totoc=mysql_fetch_array($query_cal_totoc))
{
$gran_total= $gran_total+$cal_totoc["total_linea"];
}//cierro While
} //ACA YA CONOZCO EL TOTAL DE LA ORDEN DE COMPRA
//SI YA EXISTE LA ORDEN DE COMPRA LO UNICO QUE SE DEBE HACER ES ACTUALIZAR EL GRAN TOTAL
$xquery_existe_oc = mysql_query("SELECT * FROM o_compra WHERE clave_oc = '$clv_oc'");
$xtotal_existe_oc = mysql_num_rows($xquery_existe_oc);
if(!$xtotal_existe_oc)
{
$ofechaalta = date("Y/m/d");
$query_ocgen="INSERT INTO o_compra VALUES (NULL,'$clv_oc','$ajax_sel_prov','$ofechaalta','$ajax_fecha_oc','1','$gran_total')";
mysql_query($query_ocgen) or die (mysql_error());
} //ACA ACTUALICE EL GRAN TOTAL UNICAMENTE
else //ACA CREO EL REGISTRO DE LA ORDEN DE LA COMPRA SI NO EXISTE TODAVIA
{
$up_gran_total_query = "UPDATE o_compra SET total_oc='$gran_total' WHERE clave_oc = '$clv_oc'";
mysql_query($up_gran_total_query) or die (mysql_error());
}
} // Cierra el if($ajax_sel_prov!="") CON LO QUE YA TENGO REGISTRADOS TODOS LOS DATOS DE LA OC
//NECESITO CONOCER EL NOMBRE DEL PROVEEDOR
$xquery_prov_oc = mysql_query("SELECT * FROM proveedores WHERE clave_proveedor = '$ajax_sel_prov'");
$xtotal_prov_oc = mysql_num_rows($xquery_prov_oc);
if($xtotal_prov_oc)
{
while($cal_prov=mysql_fetch_array($xquery_prov_oc))
{
$owhoprove= $cal_prov["rs_prove"];
}//cierro While
}
$oel_provedor = "<span class='subseccion'>".$owhoprove."</span><input name='sel_prov' id='sel_prov' type='hidden' value='".$ajax_sel_prov."' />";
//Y MOSTRAR LA VISTA PREVIA DE LA OC.
if($ajax_vistaprevia=="")
{
$ajax_vistaprevia= "<span class='formulario'><img src='images/bullet.jpg' width='17' height='15' />VISTA PREVIA DE LAS LINEAS</span><br /><table width='100%' border='0' cellspacing='0' cellpadding='0'><tr><td class='toptablas'>SKU O GTIN</td><td class='toptablas'>DESCRIPCIÓN</td><td class='toptablas'>PRECIO UNITARIO</td><td class='toptablas'>CANTIDAD</td>
<td class='toptablas'>DESCUENTO</td><td class='toptablas'>TOTAL DE LA LINEA</td><td class='toptablas'>EDITAR</td><td class='toptablas'>ELIMINAR</td></tr>";
$fila = "";
$res_vista = mysql_query("SELECT * FROM detalle_oc, inventarios WHERE detalle_oc.clave_oc = '$clv_oc' AND detalle_oc.clave_inventario = inventarios.clave_inventario");
$total_vista = mysql_num_rows($res_vista);
if($total_vista)
{
while($ar_visita=mysql_fetch_array($res_vista))
{
$fila="";
//AQUI ESTOY PINTANDO CADA FILA DE LA TABLA ESTAS FILAS SON LAS QUE NECESITO PODER ELIMINAR APOYADO DE OTRA FUNCION:
$fila = "<tr><td><div align='center'>".$ar_visita["gtin_inventario"]."</div></td><td><div align='center'>".$ar_visita["desc_inventario"]."</div></td><td><div align='center'>$ <span id='".$ar_visita["id_detalle"]."precio'>".number_format($ar_visita["precio_unitario"], 2, '.', ',')."</span></div></td><td><div align='center'><span id='".$ar_visita["id_detalle"]."cantidad'>".$ar_visita["cantidad_pedida"]."</span></div></td><td><div align='center'><span id='".$ar_visita["id_detalle"]."descuento'>".$ar_visita["descuento_oc"]."</span>%</div></td><td><div align='center'>$ <span id='".$ar_visita["id_detalle"]."total'>".number_format($ar_visita["total_linea"], 2, '.', ',')."</span></div></td><td><div align='center'><span id='".$ar_visita["id_detalle"]."boton'><img src='images/edit_btn.jpg' width='25' height='25' class='image' /></span></div></td><td><div align='center'><img src='images/delete-icon.jpg' width='25' height='25' class='image' /></div></td></tr>";
$ajax_vistaprevia = $ajax_vistaprevia.$fila;
}//CIERRO WHILE ENCONTRE REGISTROS
//REQUERIMOS MOSTRAR EL TOTAL DE LA ORDEN DE COMPRA
$res_vista_total = mysql_query("SELECT * FROM o_compra WHERE clave_oc = '$clv_oc'");
$total_vista = mysql_num_rows($res_vista_total);
if($total_vista)
{
while($ar_visita_total=mysql_fetch_array($res_vista_total))
{
$ajax_vistaprevia = $ajax_vistaprevia."<tr><td></td><td> </td><td> </td><td> </td><td class='formulario'><div align='right'>TOTAL:</div></td><td><strong><div align='center'>$ ".number_format($ar_visita_total["total_oc"], 2, '.', ',')."</div></strong></td><td></td><td></td></tr><tr><td></td><td colspan='2'><div align='center'><a href='index_OC.php'><img src='images/icon-save.jpg' alt='Guardar' width='47' height='47' class='image' /></a></div></td><td colspan='2' class='formulario'><div align='center'><a href='index_OC.php?oc_cancelar=".$clv_oc."&estatus_borrar=3'><img src='images/not.png' alt='Cancelar' width='47' height='47' class='image' /></a></div></td><td></td><td></td></tr></table>";
}
}
}//CIERRO IF EXISTE VISTA PREVIA
mysql_close($connection);//CIERRO LA CONEXION SQL
}//CIERRO IF VISTA PREVIA
$response = new xajaxResponse();
$response->assign('vista_previa_orden', 'innerHTML', $ajax_vistaprevia);
return $response;
} //funcion