Cuando trato de cargar el primer .load me pasa 1 variable sin ningún problema, recibo esta variable de un método _GET para almacenarla en un atributo data-id button para pasarla de vuelta a otro .load, en este segundo archivo recibo la variable nuevamente en un método _GET y el código hace lo suyo, pero al hacer el proceso nuevamente desde el principio, en el segundo .load se duplica la variable y el script alert() muestra 2 veces, así como el proceso de este mismo archivo también.
He probado con las funciones .empty() y .remove(), así mismo he intentado cargar desde el último .load el primer archivo que filtra el archivo principal, pero el problema sigue presente.
(El principal para enviar la variable al primer archivo en .load)
<p>Select a category</p> <select name="category" id="category" class="form-control" required> <option disabled selected value>category</option> <option value="1">all cat</option> </select> <div id="table-category" name="table-category"></div> $("#consult").click(function(e){ e.preventDefault(); idCategory = $('#category').val(); $('#table-category').load('../public/tabla-proyectos.php?v1='+idCategory ); });El segundo .load en ese id="table-category"
$category = $_GET['v1']; <script> alert(<?php echo $category;?>); <!-- In this part dont have problems with the variable because return only one result --> </script> <button id="admin" name="admin" data-id="<?php echo $category;?>">Show</button> <div id="map"></div> <script> $(document).on("click", "#admin", function () { <!-- I think there's the problem --> category = $(this).data('id'); $('#map').load('../public/mapa.php?val1='+category); }); </script>Archivo .load final
$categoy_id = $_GET['val1']; <script> alert(<?php echo $category_id;?>); <!-- The first time OK, but trying again from the beginning repeat the process 2 times --> </script>Lo he resuelto de la siguiente manera:
He cogido el script del segundo archivo y lo he puesto en el archivo principal, añadiéndole una función .empty() para que limpie todos sus valores antes de volver a mostrar un nuevo resultado dentro de este div, he También agregó un nuevo script dentro del último archivo .load que es el siguiente:
El archivo principal ahora se ve como:
$("#consult").click(function(e){ e.preventDefault(); idCategory = $('#category').val(); $('#table-category').load('../public/tabla-proyectos.php?v1='+idCategory ); }); $(document).on("click", "#admin", function () { $('#map').empty(); category = $(this).data('id'); $('#map').load('../public/mapa.php?val1='+category); });El segundo archivo .load no tiene script porque ahora está en el principal
El último script de archivo ahora se ve así:
idCategory = $('#category').val(); $('#table-category').empty(); $('#table-category').load('../public/tabla-proyectos.php? v1='+idCategory );