entre Desarrolladores

Recibe ayuda de expertos

Registrate y pregunta

Es gratis y fácil

Recibe respuestas

Respuestas, votos y comentarios

Vota y selecciona respuestas

Recibe puntos, vota y da la solución

Pregunta

1voto

Pasar valor javascript dentro de la misma pagina

hola a todos, tengo la siguiente duda, tengo este valor que aparece dentro de una tabla

echo "<td width='25%'>"."<br>"."<div id='idmop' class='png'>".odbc_result($rs,"idmop") ."</div>"."<div >"."<button class='btn btn-info btn-lg' data-toggle='modal' data-target='#myModal2' onclick='myFunction2(\"".odbc_result($rs,'idmop')."\")'><i class='fa fa-edit'></i> </button>"." "."<button class='btn btn-info btn-lg' data-toggle='modal' data-target='#myModal'  onclick='myFunction3(\"".odbc_result($rs,'idmop')."\")'> <i class='fa fa-external-link'></i></button>"." Complete = 100%"."</div>"."</td>";

funcion

<script>
                    function myFunction3(idMop) {
                                alert("ok");
                                var idmop = idMop;
                                alert(idmop);

                                var parametros = {
                                "IDMOP" : idMop,
                                "IDMOP2": idmop
                        };
                        $.ajax({
                                data:  parametros,
                                url:   'ajax/search_MopEdit.php',
                                type:  'post',
                                beforeSend: function () {

                                },
                                success:  function (response) {

                                         //alert(response);

                                }
                        }); 

//window.open("viewmop_.php?idmop="+idMop, "_blank", "toolbar=yes, scrollbars=yes, resizable=yes, width=1000, height=700 left=2000");
                        }

el boton entra a la función y me devuelve el valor, pero quisiera pasarlo igual de nuevo a php ya que mando un componente de bootstrap dentro de esta pagina, la pregunta es, de que manera puedo recuperar el valor que mando en la función para poder hacer mis consultas y que se vean en mi componente (modal)

<?php

$id1= filter_input(INPUT_POST, "IDMOP");

?>

para poder mandar mi "modal", ya que no quiero que me abra una nueva ventana, de hecho por eso comente esa parte en la función,
gracias de antemano

0voto

MitsuGami comentado

  • ¿Qué es lo que tratas de hacer?
  • ¿para qué necesitas enviar controles de Bootstrap al servidor?
  • ¿Por qué no solo obtienes los datos del servidor y los aplicas en el cliente?

Trata también de no mezclar tanto código PHP y HTML, hace que el código se vea muy sucio y sea difícil de leer. Usa algún framework como CodeIgniter, es realmente fácil de usar.

0voto

rach comentado

hola @MitsuGami quiero recuperar una vista previa y el componente de bootstrap me gustó mucho, ya que antes la cargaba con window.open y en cambio con esta forma que te comento se ve mucho mejor, el problema es que tengo una tabla que tiene varios folios y de esos me mandaria la vista previa de cada documento pero no encuentro como mandar esa referencia a php :S no se si me di a entender

1 Respuesta

1voto

white Puntos75880

En lugar de usar un popup podrías realizar una petición ajax

reemplazando este código:

window.open("viewmop_.php?idmop="+idMop, "_blank", "toolbar=yes, scrollbars=yes, resizable=yes, width=1000, height=700 left=2000");

por este:

$.ajax({
    method: 'GET',
    url: 'viewmop_.php',
    params: {
        idmop: idMop
    }
    //dataType: 'json',
    success: function (html) {
        // html contiene el codigo de viewmop_.php
        // asegurate de no recibir un documento html completo
        // sino más bien un trozo de html o si quieres ser una pro usa JSON

        $('#elemento-modal').find('.modal-body').html(html);
        $('#elemento-modal').modal('show');

    }
});

saludos!

0voto

rach comentado

hola @white gracias por responder, efecticamente ya no quiero usar el popup porq no me gusta como se ve y con "modal" de bootrstrap se ve muy bien, use la petición ajax que me dijiste pero no me manda nada, ni siquiera logro entrar a la función :( solo le cambie la pagina por search.php (que es donde tengo la tabla con los ids) y cada id tiene un boton, ese boton entra a una funcion y antes me mandaba el popup, pero ahora quiero que me mande el nuevo componente, que puse mas abajo de la misma pagina, y arriba ejecuto todo lo de php para hacer la busqueda de determinado id, no se si me puedas ayudar

0voto

white comentado

Cual es el id de tu ventana modal? podrías poner la salida de la consola? (F12) ya en consola da click al botón y dinos que te devuelve tu consola, pueda ser que ocurra un error

Una mejor manera de testear es usar console.log, console.warning, etc. En lugar de alert()

intenta agregar console.log(html); despues de :

success: function (html) {

0voto

rach comentado

hola @white

te lo pego tal cual

<script>
                    function myFunction2(idMop) {

                    alert("ok");

                    $.ajax({
                        method: 'GET',
                        url: 'search_MopEdit.php',
                        params: {
                            idmop: idMop
                        }
                        //dataType: 'json',
                        success: function (html) {
                            // html contiene el codigo de viewmop_.php
                            // asegurate de no recibir un documento html completo
                            // sino más bien un trozo de html o si quieres ser una pro usa JSON

                            $('#elemento-modal').find('.modal-body').html(html);
                            $('#elemento-modal').modal('show');
                            console.log(html);
                        }
                    });

                        }
                    </script>

no me manda ni el alert :(

0voto

white comentado

después de esto:

    params: {
        idmop: idMop
    }, // <== coma agregada

va una coma, error mío.


aún así parece que el error viene de otro lado, intenta ver si tienes algún error en la consola, como te propuse anteriormente.

podrias llamar a la función manualmente desde la consola.

myFunction2(5);

firebug console

https://norfipc.com/inf/como-usar-consola-javascript-navegador-web.php

0voto

rach comentado

ya me manda el componente modal, sin embargo me pinta toda la pagina en la que estoy y no solo lo que le metí al componente

:(
yo solo quiero recuperar el numero id en la parte de abajo de php para que despues me abra el componente con todos los detalles que yo le puse

Saludos y gracias por responder

0voto

white comentado

cuando dices que te pinta toda la página a que te refieres?

0voto

rach comentado

Hola de nuevo @white me pone la página desde el princio, es decir, desde la tabla de búsqueda

0voto

white comentado

Si lo entendí bien entonces estás recibiendo en tu ventana modal un documento html completo, es por eso que te deje en comentarios en él código de que te cerciores de que no estés recibiendo html de manera no esperada.

intenta en tu fichero search.php agregar una condicional para devolver contenido si viene de aquella petición ajax.

por ejemplo:

<?php
/** search.php */

if (isset($_GET['is_modal'])) {
    // esta peticion es para una ventana modal, entonces retornemos algo
    // distinto.

    echo '...';
    die(); // no ejecutar más código.
}

include 'header.php';
//... etc
include 'footer.php';

y en los parametros de la petición ajax:

params: {
    idmop: idMop,
    is_modal: true
}

una buena práctica es que retornes contenido json, de modo que separes los datos de la vista.

Por favor, accede o regístrate para responder a esta pregunta.

Otras Preguntas y Respuestas


...

Bienvenido a entre Desarrolladores, donde puedes realizar preguntas y recibir respuestas de otros miembros de la comunidad.

Conecta