Foros del Web » Programando para Internet » Javascript »

variables de php modal a función js y a BD

Estas en el tema de variables de php modal a función js y a BD en el foro de Javascript en Foros del Web. Buenas tardes una vez más amigos del web. Vengo con un problema que no sé solucionar... como digo siempre mis conocimientos son bastantes caseros y, ...
  #1 (permalink)  
Antiguo 02/03/2016, 09:39
 
Fecha de Ingreso: julio-2013
Mensajes: 174
Antigüedad: 10 años, 9 meses
Puntos: 1
variables de php modal a función js y a BD

Buenas tardes una vez más amigos del web.
Vengo con un problema que no sé solucionar... como digo siempre mis conocimientos son bastantes caseros y, bueno, hago lo que puedo. Les cuento.

Estoy tratando de hacer consultas con BD y ventanas modales para hacer INSERT, UPDATE o DELETE. El caso es que tengo una consulta en php que me muestra un listado de vídeos en una ventana modal. La intención es que al querer eliminar un vídeo del listado me envíe a una función de sweetalert de warning, que me pregunta si realmente quiero eliminar el vídeo. Al aceptar iría al DELETE en php para eliminar el registro seleccionado.... el problema es que no consigo encontrar la solución para pasar los datos de php a la función y después al DELETE. Os muestro el código tal cual lo tengo.

Código HTML:
<div class="cajaexterna">
	<div class="cajainterna animated">
    <div align="center"><strong>Eliminar v&iacute;deo</strong><br /><hr /></div>
		<table width="100%" border="0" cellspacing="2" cellpadding="5">
			<tr style="background-color:#000">
				<th scope="col" width="75%" height="auto" style="font-size:.67em; color:#FFF"><em>Nombre del v&iacute;deo</em></th>
				<th scope="col" width="15%" height="auto" style="font-size:.67em; color:#FFF"><em>Secci&oacute;n</em></th>
				<th scope="col" width="10%" height="auto" style="font-size:.67em; color:#FFF"><em>Eliminar</em></th>
			</tr>
			<?php do {?>
			<tr style="background-color:#FFF">
				<td width="75%" height="auto" style="font-size:.67em; color:#000" align="left"><strong><?php echo $row_videos['titulo_video']; ?></strong></td>
				<td width="15%" height="auto" style="font-size:.67em; color:#000" align="center"><strong><?php echo ObtenerSeccion ($row_videos['tipo_video']); ?></strong></td>
				<td width="10%" height="auto" style="font-size:.67em; color:#000" align="center"><a href="panelcentral.php?recordID1=<?php echo $row_videos['id_video']; ?>"><img src="http://www.forosdelweb.com/f13/imagenes/eliminar.png" width="20" height="20" alt="Eliminar" title="Eliminar" onclick="javascript:return AsegurarVideo();" /></a></td>
			</tr>
			<?php } while ($row_videos = mysql_fetch_assoc($videos)); ?>
			<tr>
            	<td></td>
            	<td></td>
				<td>
				<a href="#" class="cerrarmodal"><input type="button" value="Cerrar esta ventana" style="cursor:pointer; background-color:#f5b50c" class="button" /></a>
                </td>
			</tr>
		</table>
	</div>
</div> 
Hasta aquí todo perfecto, se me abre la modal con los datos correctos y recibe cada linea su id perfecto. He marcado en rojo la etiqueta que me envía al DELETE directamente(no se ven los colores pero es <a href="http://www.forosdelweb.com/f13/variables-php-modal-funcion-js-bd-1148393/panelcentral.php......) y en azul la que me muestra el mensaje de confirmación(<img src="........). Lo que ocurre es que antes la confirmación era en un alert normal y corriente...que me preguntaba si estaba seguro y después continuaba con el DELETE.

Pero ahora al implementar sweetalert funciona bastante distinto. La función es la siguiente:
Código Javascript:
Ver original
  1. <script type="text/javascript">
  2. function AsegurarVideo(){
  3.     swal({
  4.         title: "¿Seguro?",
  5.         text: "¡Se eliminará el vídeo de la base de datos!",
  6.         type: "warning",
  7.         showCancelButton: true,
  8.         confirmButtonColor: "#DD6B55",
  9.         confirmButtonText: "¡Sí, borrarlo!",
  10.         cancelButtonText: "Cancelar",
  11.         closeOnCancel: false
  12.     },
  13.     function(isconfirm){
  14.         if (isConfirm){
  15.             location.href = "panelcentral.php?recordID1=<?php echo $row_videos['id_video']; ?>"
  16.         } else {
  17.             swal({
  18.                 tittle: "¡Uff!",
  19.                 text: "El vídeo permanece seguro",
  20.                 type: "success",
  21.                 confirmButtonText: "Volver"
  22.             },
  23.             function(isConfirm){
  24.                 if (isConfirm){
  25.                     location.href="panelcentral.php"
  26.                 } else {
  27.                     location.href="panelcentral.php"
  28.                 }
  29.             })
  30.         }
  31.     })
  32. }
  33. </script>
He marcado en rojo lo que sé que esta mal(no salen los colores pero es la línea location.href...), ya que debería recibir el id del php, pasarlos a js y devolverlos como php al DELETE.... y ahi es donde me pierdo, me hago un lío, y ya no se por donde tirar.

Si lo dejo tal cual está funciona bien el DELETE pero no se detiene en el mensaje de confirmación... por eso sé que necesito quitar la linea <a href.... que está en rojo... pero no se como hacer para pasar esas variables.

Si me pudieran echar una mano en la conversión.... agradecido un millón.

PD: igual me he enrollado un poco!!!

Última edición por raulgranadosraul; 02/03/2016 a las 09:44 Razón: No se marcan los colores
  #2 (permalink)  
Antiguo 02/03/2016, 11:41
 
Fecha de Ingreso: enero-2013
Ubicación: Costa Rica
Mensajes: 6
Antigüedad: 11 años, 3 meses
Puntos: 0
Respuesta: variables de php modal a función js y a BD

Mira yo lo haría del siguiente modo, tienes los siguientes datos:

Tabla Persona
id | Pelicula | Precio.
------
Ahora en la tabla, la fila del boton "delete" le pondria la funcion js que haría request, obvio, esta fn(e) recibe parametro, que seria el id del campo.
Código PHP:
Ver original
  1. <?php
  2. echo "<td>Nombre: ".$row['Pelicula']." - <button onclick='delete(".$row['id'].")'></button></td>"
  3. ?>

---

Mi JS haria lo siguiente:

Código Javascript:
Ver original
  1. function delete(e){
  2. var con = confirm("Desea Eliminar");
  3.  
  4.   if(con){
  5.  
  6.     var xmlhttp;
  7.    
  8.     if (window.XMLHttpRequest) xmlhttp=new XMLHttpRequest();
  9.         else xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  10.        
  11.         xmlhttp.open("GET",  "delete.php?id_del="+e ,true);
  12.         xmlhttp.onreadystatechange=function(){
  13.            
  14.                if (xmlhttp.readyState==4 && xmlhttp.status==200){
  15.                   console.log(xmlhttp.responseText);
  16.                }
  17.         }
  18.        
  19.         xmlhttp.send();
  20.  
  21.   }
  22. }

Aqui mediante un GET delete.php recibe el id del campo que se desea eliminar..
Ya desps seria la logica del delete.php.. Espero que te hagas una idea con esto!!
  #3 (permalink)  
Antiguo 02/03/2016, 11:46
 
Fecha de Ingreso: octubre-2009
Mensajes: 305
Antigüedad: 14 años, 6 meses
Puntos: 29
Respuesta: variables de php modal a función js y a BD

Primero recuerda que PHP es un lenguaje del lado del server, por lo cual No tiene ventanas modales, eso es parte de Javascript.

Tu problema es que debes de propagar el ID del video a la función AsegurarVideo()

onclick="javascript:return AsegurarVideo('<?php echo $row_videos['id_video']; ?>')"

y la función queda como:

Código Javascript:
Ver original
  1. <script type="text/javascript">
  2. function AsegurarVideo(video_id){
  3.     swal({
  4.         title: "¿Seguro?",
  5.         text: "¡Se eliminará el vídeo de la base de datos!",
  6.         type: "warning",
  7.         showCancelButton: true,
  8.         confirmButtonColor: "#DD6B55",
  9.         confirmButtonText: "¡Sí, borrarlo!",
  10.         cancelButtonText: "Cancelar",
  11.         closeOnCancel: false
  12.     },
  13.     function(isconfirm){
  14.         if (isConfirm){
  15.             location.href = "panelcentral.php?recordID1=" + video_id;
  16.         } else {
  17.             swal({
  18.                 tittle: "¡Uff!",
  19.                 text: "El vídeo permanece seguro",
  20.                 type: "success",
  21.                 confirmButtonText: "Volver"
  22.             },
  23.             function(isConfirm){
  24.                 if (isConfirm){
  25.                     location.href="panelcentral.php"
  26.                 } else {
  27.                     location.href="panelcentral.php"
  28.                 }
  29.             })
  30.         }
  31.     })
  32. }
  33. </script>
  #4 (permalink)  
Antiguo 02/03/2016, 15:22
 
Fecha de Ingreso: julio-2013
Mensajes: 174
Antigüedad: 10 años, 9 meses
Puntos: 1
Respuesta: variables de php modal a función js y a BD

Cita:
Iniciado por sustentio Ver Mensaje
Primero recuerda que PHP es un lenguaje del lado del server, por lo cual No tiene ventanas modales, eso es parte de Javascript.

Tu problema es que debes de propagar el ID del video a la función AsegurarVideo()

onclick="javascript:return AsegurarVideo('<?php echo $row_videos['id_video']; ?>')"

y la función queda como:

Código Javascript:
Ver original
  1. <script type="text/javascript">
  2. function AsegurarVideo(video_id){
  3.     swal({
  4.         title: "¿Seguro?",
  5.         text: "¡Se eliminará el vídeo de la base de datos!",
  6.         type: "warning",
  7.         showCancelButton: true,
  8.         confirmButtonColor: "#DD6B55",
  9.         confirmButtonText: "¡Sí, borrarlo!",
  10.         cancelButtonText: "Cancelar",
  11.         closeOnCancel: false
  12.     },
  13.     function(isconfirm){
  14.         if (isConfirm){
  15.             location.href = "panelcentral.php?recordID1=" + video_id;
  16.         } else {
  17.             swal({
  18.                 tittle: "¡Uff!",
  19.                 text: "El vídeo permanece seguro",
  20.                 type: "success",
  21.                 confirmButtonText: "Volver"
  22.             },
  23.             function(isConfirm){
  24.                 if (isConfirm){
  25.                     location.href="panelcentral.php"
  26.                 } else {
  27.                     location.href="panelcentral.php"
  28.                 }
  29.             })
  30.         }
  31.     })
  32. }
  33. </script>
Gracias por la respuesta sustentio (solo por eso te doy +1), ya voy acercándome. No termina de funcionar.

Después de estar probando cosas... me vino la luz de repente y en un par de segundos lo tenía solucionado. Lo comparto por si puede ayudar a alguien.
Como veía que había un error en la linea
Código Javascript:
Ver original
  1. location.href = "panelcentral.php?recordID1=" + video_id;
y además estaba seguro que el error estaba en la manera de enviar el recordID1, decidí meterla en una variable y trabajarla desde ahí. Funcionó a la primera y satisfecho me voy a dormir.
Finalmente la función quedó así:
Código Javascript:
Ver original
  1. <script type="text/javascript">
  2. function AsegurarVideo(id_video){
  3.     var Idvideo = "?recordID1=" + id_video;
  4.     swal({
  5.         title: "¿Seguro?",
  6.         text: "¡Se eliminará el vídeo de la base de datos!",
  7.         type: "warning",
  8.         showCancelButton: true,
  9.         confirmButtonText: "¡Sí, borrarlo!",
  10.         cancelButtonText: "Cancelar",
  11.         closeOnCancel: false
  12.     },
  13.     function(isConfirm){
  14.         if (isConfirm){
  15.             location.href="panelcentral.php" + Idvideo
  16.         } else {
  17.             swal("Uff", "El vídeo permanence seguro", "error")
  18.         }
  19.     })
  20. }
  21. </script>

De esta manera el js me recoge la función, convierto en variable el recordID1 y la envío junto con el id recibido del php.... y listo. Perfecto.
Gracias por ayudarme a encontrar una solución.
Un saludo.

Última edición por raulgranadosraul; 03/03/2016 a las 19:16 Razón: solucionado

Etiquetas: bd, funcion, input, js, modal, php, variables
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 23:35.