Foros del Web » Programando para Internet » Jquery »

[SOLUCIONADO] Llamada ajax sobre uno mismo

Estas en el tema de Llamada ajax sobre uno mismo en el foro de Jquery en Foros del Web. Buenas a todos... Mi preunta es la sig. Tengo un archivo php en en que se cargan de forma dinamica todo el menu de la ...
  #1 (permalink)  
Antiguo 22/03/2015, 07:56
Avatar de pacomercon  
Fecha de Ingreso: agosto-2014
Mensajes: 15
Antigüedad: 9 años, 8 meses
Puntos: 2
Pregunta Llamada ajax sobre uno mismo

Buenas a todos...

Mi preunta es la sig. Tengo un archivo php en en que se cargan de forma dinamica todo el menu de la parte pública.

Es decir, un listado.

Cada item tiene 3 enlaces de opciones elq ue nos interesa es el de editar y modificar el nombre del titulo...es decir cambiar el nombre de inicio por HOME... o cosas así...





Todo eso se hace mediante jquery dialog... es decir que todo se carga desde un mismo arichivo php que se llama menu.php

Archivo menu.php

Código PHP:
Ver original
  1. if (@$_POST['enviarm']) {
  2.  
  3.     if (!empty($_POST['titulo']) || !empty($_POST['enlace'])) {
  4.         $titulo = $_POST['titulo'];
  5.         $enlace = $_POST['enlace'];
  6.         $crearm='';
  7.  
  8.         $consulta = $bd->Query("INSERT INTO menu VALUES (NULL, '$titulo', '','', '$enlace')");
  9.     } else {
  10.         $faltadato = '';
  11.     }
  12. }
  13.  
  14. if (@$_POST['enviarsubm']) {
  15.  
  16.     if (!empty($_POST['titulo']) || !empty($_POST['enlace'])) {
  17.         $titusub = $_POST['titusub'];
  18.         $enlace = $_POST['enlace'];
  19.         $idpadre = $_COOKIE["urlmenu"];
  20.         $crearsm='';
  21.  
  22.         $consulta = $bd->Query("INSERT INTO submenu VALUES (NULL, '$titusub', '$enlace', '$idpadre')");
  23.     } else {
  24.         $faltadato = '';
  25.     }
  26. }
  27.  
  28. if (@$_POST['modificar']) {
  29.  
  30.     $titulo = $_POST['titulo'];
  31.     $enlace = $_POST['enlace'];
  32.     $idpadre = $_COOKIE["urlmenu"];
  33.     $mod='';
  34.  
  35.     $consulta = $bd->Query("UPDATE menu SET titulo = '$titulo', href = '$enlace' WHERE id = '$idpadre'");
  36.  
  37. //     // echo "<div id='elimenu' title='Submenu'><p>El menu ha sido borrado correctamente.</p></div>";
  38. //     // header("Location: admin.php?menu=menus");
  39. }
  40.  
  41. if (isset($_GET['a']) && $_GET['a'] == "elimenu") {
  42.     $id = $_GET['id'];
  43.     $consulta = $bd->Query("DELETE FROM menu WHERE id = '$id'");
  44.     $borrado='';
  45.  
  46.     // echo "<div id='elimenu' title='Submenu'><p>El menu ha sido borrado correctamente.</p></div>";
  47.     // header("Location: admin.php?menu=menus");
  48. }
  49.  
  50. if (isset($_GET['a']) && $_GET['a'] == "elisub") {
  51.     $id = $_GET['idsub'];
  52.     $consulta = $bd->Query("DELETE FROM submenu WHERE idsubmenu = '$id'");
  53.     $borrado='';
  54.  
  55.     // echo "<div id='elisub' title='Submenu'><p>El submenu ha sido borrado correctamente.</p></div>";
  56.     // header("Location: admin.php?menu=menus");
  57. }
  58.  
  59. $consulta = $bd->Query("SELECT * FROM menu ORDER BY id ASC");
  60. $qsubmenu = $bd->Query("SELECT * FROM submenu");
  61. ?>
  62.  
  63. <div id='mpadre' title='Agregar elemento '>
  64.     <?php
  65.     $submenu = new formu('menu','admin.php?menu=menus');
  66.         echo $submenu->CrearInput('text','titulo','Titulo menu:','','','','','','si');
  67.         echo $submenu->CrearInput('text','enlace','Enlace:','','','','','','si');
  68.         echo $submenu->CrearInput('submit','enviarm','no','','','','Enviar');
  69.         echo $submenu->CrearInput('reset','','no','','','','Borrar');
  70.     $submenu->FinFormu();
  71.     ?>
  72. </div>
  73. <div id='modmpadre' title='Modificar elemento '>
  74.     <?php
  75.     $submenu = new formu('modmenu','admin.php?menu=menus');
  76.         echo $submenu->CrearInput('text','titulo','Titulo menu:','','','');
  77.         echo $submenu->CrearInput('text','enlace','Enlace:','','','','','');
  78.         echo $submenu->CrearInput('submit','modificar','no','','','','Modificar');
  79.         echo $submenu->CrearInput('reset','','no','','','','Borrar');
  80.     $submenu->FinFormu();
  81.     ?>
  82. </div>
  83. <div id='sbmpadre' title='Agregar submenu '>
  84.     <?php
  85.     $submenu = new formu('submenu','admin.php?menu=menus');
  86.         echo $submenu->CrearInput('text','titusub','Titulo submenu:','','','','','','si');
  87.         echo $submenu->CrearInput('text','enlace','Enlace:','','','','','','si');
  88.         echo $submenu->CrearInput('submit','enviarsubm','no','','','','Enviar');
  89.         echo $submenu->CrearInput('reset','','no','','','','Borrar');
  90.     $submenu->FinFormu();
  91.     ?>
  92. </div>
  93. <div id='modsbmpadre' title='Modificar submenu '>
  94.     <?php
  95.     $submenu = new formu('submenu','admin.php?menu=menus');
  96.         echo $submenu->CrearInput('text','titusub','Titulo submenu:','','','','','','si');
  97.         echo $submenu->CrearInput('text','enlace','Enlace:','','','','','','si');
  98.         echo $submenu->CrearInput('submit','enviarsubm','no','','','','Enviar');
  99.         echo $submenu->CrearInput('reset','','no','','','','Borrar');
  100.     $submenu->FinFormu();
  101.     ?>
  102. </div>
  103.  
  104. <div class="nuevo-articulo">
  105.     <a id="nuevom" href="admin.php?menu=menus">Crear nuevo</a>
  106. </div>
  107.  
  108. <div id="tmenu">
  109. <h1>Menu</h1>
  110.     <?php if($bd->Nrows($consulta) > 0) { ?>
  111.         <table id="" class="display" width="100%">
  112.             <thead>
  113.                 <tr>
  114.                     <th scope="col">#</th>
  115.                     <th scope="col">Titulo</th>
  116.                     <th scope="col">href</th>
  117.                     <!-- <th scope="col">Estado</th> -->
  118.                     <th scope="col">Opciones</th>
  119.                 </tr>
  120.             </thead>
  121.             <tbody>
  122.                 <?php while($fila = $bd->Farray($consulta)) { ?>
  123.                 <tr>
  124.                     <td><?php echo strip_tags($fila['id']); ?></td>
  125.                     <td><?php echo strip_tags($fila['titulo']); ?></td>
  126.                     <td><?php echo strip_tags($fila['href']); ?></td>
  127.                     <!-- <td></td> -->
  128.                     <td>
  129.                         <a class="modm ion-edit tooltip" title="Modificar" href="admin.php?menu=menus&a=modmenu&id=<?php echo $fila['id'] ?>"></a>
  130.                         <a class="ion-trash-b tooltip" title="Borrar" href="admin.php?menu=menus&a=elimenu&id=<?php echo $fila['id'] ?>"></a>
  131.                         <a class="addsubmenu ion-plus tooltip" title="Añadir submenu" href="admin.php?menu=menus&padre=<?php echo $fila['id']; ?>"></a>
  132.                     </td>
  133.                 </tr>
  134.                 <?php     } ?>
  135.             </tbody>
  136.         </table>
  137.  
  138. <?php
  139.     } else {
  140.  
  141.         echo "Sin datos";
  142.  
  143.     }
  144. ?>
  145. </div>
  146.  
  147. <div id="tsubmenu">
  148. <h1>Submenu</h1>
  149.     <?php if($bd->Nrows($qsubmenu) > 0) { ?>
  150.         <table id="tablesubmenu" class="display" width="100%">
  151.             <thead>
  152.                 <tr>
  153.                     <!-- <th scope="col">#</th> -->
  154.                     <th scope="col">Titulo</th>
  155.                     <th scope="col">href</th>
  156.                     <th scope="col">Padre</th>
  157.                     <!-- <th scope="col">Estado</th> -->
  158.                     <th scope="col">Opciones</th>
  159.                 </tr>
  160.             </thead>
  161.             <tbody>
  162.                 <?php while($fila = $bd->Farray($qsubmenu)) { ?>
  163.                 <tr>
  164.                     <!-- <td data-id="<?php //echo strip_tags($fila['idsubmenu']); ?>"><?php //echo strip_tags($fila['idsubmenu']); ?></td> -->
  165.                     <td><?php echo strip_tags($fila['titulosub']); ?></td>
  166.                     <td><?php echo strip_tags($fila['hrefsub']); ?></td>
  167.                     <td><?php echo strip_tags($fila['idmenu']); ?></td>
  168.                     <!-- <td></td> -->
  169.                     <td>
  170.                         <a class="modsbm ion-edit tooltip" title="Modificar" href="admin.php?menu=menus&a=modsub&idsub=<?php echo $fila['idsubmenu'] ?>"></a>
  171.                         <a class="ion-trash-b tooltip" title="Borrar" href="admin.php?menu=menus&a=elisub&idsub=<?php echo $fila['idsubmenu'] ?>"></a>
  172.                     </td>
  173.                 </tr>
  174.                 <?php     } ?>
  175.             </tbody>
  176.         </table>
  177.  
  178. <?php
  179.     } else {
  180.  
  181.         echo "Sin datos";
  182.  
  183.     }
  184. ?>
  185. </div>
  186. <div class="borrar"></div>


Archivo script.js
este es el archivo que hace la llamada a la porción de código que se encuetra en menu.php y se encarga de mostrar el submenu para modificar el titulo y la url.

Código Javascript:
Ver original
  1. $(function() {
  2.             $( "#modmpadre" ).dialog({
  3.                 resizable: false,
  4.                 autoOpen: false,
  5.                 modal: true,
  6.                 show: {
  7.                     effect: "fade",
  8.                     duration: 1000
  9.                 },
  10.                 hide: {
  11.                     effect: "fade",
  12.                     duration: 100
  13.                 }
  14.             });
  15.  
  16.             $( ".modm" ).click(function(event) {
  17.                 event.preventDefault();
  18.                 var url = $( this ).attr("href");
  19.                 var array_id = [];
  20.                 // var titu = $('#tmenu tr td').data('id');
  21.                 // console.log(titu);
  22.                 // alert(JSON.stringify($('#tmenu tr td').data(), null,' '));
  23.  
  24.                 // url = url.substr(-1,1);
  25.                 url = url.split("=");
  26.                 url = url[3];
  27.                 console.log(url);
  28.  
  29.                 $('#tmenu td:nth-child(1)').each(function(){
  30.                     array_id.push($(this).text());
  31.                 });
  32.                 $.each(array_id,function( index, valor ) {
  33.                 // console.log( index + ": " + $( this ).text() );
  34.                     if (url == valor) {
  35.                         titulo = $('#tmenu tr:nth-child('+valor+') td:nth-child(2)').text();
  36.                         enlace = $('#tmenu tr:nth-child('+valor+') td:nth-child(3)').text();
  37.                     }
  38.                 });
  39.                
  40.                 $.macaroon('urlmenu',url);
  41.                 $('#modmpadre #titulo').val(titulo);
  42.                 $('#modmpadre #enlace').val(enlace);
  43.                 $( "#modmpadre" ).dialog( "open" );
  44.             });
  45.         });


Mi pregunta es la sig. como puedo hacer para que me muestre los datos correspondientes al id en la ventana de modificar menu?¿ ahora lo consigo pero siempre y cuando el id sea correlativo al elemento...es decir en el momento que en la imagen 1º haya 2 paginas en vez de una dejara de mostrarme la info correctamente ya que el id lo cojo desde el html...

Gracias
  #2 (permalink)  
Antiguo 23/03/2015, 18:45
(Desactivado)
 
Fecha de Ingreso: abril-2013
Ubicación: rosario
Mensajes: 248
Antigüedad: 11 años
Puntos: 17
Respuesta: Llamada ajax sobre uno mismo

algo asi no te sirve?
Código Javascript:
Ver original
  1. $( ".modm" ).click(function(event) {
  2.         var titulo = $(this).parent().prev().prev().text();
  3.         var enlace = $(this).parent().prev().text();
  4.         console.log(titulo+' -- '+enlace);
  5.         $('#modmpadre #titulo').val(titulo);
  6.         $('#modmpadre #enlace').val(enlace);
  7.        
  8.     });
  #3 (permalink)  
Antiguo 24/03/2015, 05:14
Avatar de pacomercon  
Fecha de Ingreso: agosto-2014
Mensajes: 15
Antigüedad: 9 años, 8 meses
Puntos: 2
Respuesta: Llamada ajax sobre uno mismo

Cita:
Iniciado por diurno10 Ver Mensaje
algo asi no te sirve?
Código Javascript:
Ver original
  1. $( ".modm" ).click(function(event) {
  2.         var titulo = $(this).parent().prev().prev().text();
  3.         var enlace = $(this).parent().prev().text();
  4.         console.log(titulo+' -- '+enlace);
  5.         $('#modmpadre #titulo').val(titulo);
  6.         $('#modmpadre #enlace').val(enlace);
  7.        
  8.     });
Si efectivamente esto ha hecho que funcione...

Muchas gracias!!! :D

Última edición por pacomercon; 24/03/2015 a las 05:22 Razón: Funciona

Etiquetas: ajax, php
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 13:20.