Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

209
Vistas
acceda al valor de la sesión de PHP en el javascript de otro archivo

Estoy tratando de hacer un modal en un archivo PHP y estoy administrando el formulario desde el modal en otro archivo javascript.

Mi pregunta es: ¿Cómo puedo acceder a un valor de sesión en ese archivo javascript?

Aquí está mi código HTML en un archivo php:

 <dialog class="modal" id="modal"> <div class=modal-header> <h1>Insert a term</h1> </div> <form class="form" method="dialog"> <label>Title</label> <input type="text" id="title"> <label>Description</label> <input type="text" id="description" placeholder="(Max 140 characters)"> <div class="btn2-group"> <button class="button" id="submitForm" type="submit">submit form</button> <button class="close button"><b>Close</b></button> </div> </form> </dialog>

Y aquí está mi modal.js:

 const modal = document.querySelector("#modal"); const openModal = document.querySelector(".open-button"); const closeModal = document.querySelector(".close"); const submitForm = document.querySelector("#submitForm") openModal.addEventListener("click", () => { modal.showModal(); }); closeModal.addEventListener("click", () => { modal.close(); }); submitForm.addEventListener("click", () => { var title = document.getElementById("title").value; var desc = document.getElementById("description").value; var x = "<?=$_SESSION['user_id']?>"; if (title && desc) { alert(x); } else { print("Please fill everything up!"); } })
about 4 years ago · Juan Pablo Isaza
3 Respuestas
Responde la pregunta

0

Genere el archivo JS desde PHP, modal.js.php .

 <?php session_start(); header("Content-type: text/javascript"); ?> const modal = document.querySelector("#modal"); const openModal = document.querySelector(".open-button"); const closeModal = document.querySelector(".close"); const submitForm = document.querySelector("#submitForm") openModal.addEventListener("click", () => { modal.showModal(); }); closeModal.addEventListener("click", () => { modal.close(); }); submitForm.addEventListener("click", () => { var title = document.getElementById("title").value; var desc = document.getElementById("description").value; var x = <?= json_encode($_SESSION['user_id']) ?>; if (title && desc) { alert(x); } else { print("Please fill everything up!"); } })
about 4 years ago · Juan Pablo Isaza Denunciar

0

Como sugerí en mi comentario, intentaría agregar una entrada oculta al código PHP HTML como esa:

 <dialog class="modal" id="modal"> <div class=modal-header> <h1>Insert a term</h1> </div> <form class="form" method="dialog"> <label>Title</label> <input type="text" id="title"> <label>Description</label> <input type="text" id="description" placeholder="(Max 140 characters)"> <input type="hidden" id="user-id" name="userId" value="<?=$_SESSION['user_id']?>"> <div class="btn2-group"> <button class="button" id="submitForm" type="submit">submit form</button> <button class="close button"><b>Close</b></button> </div> </form> </dialog>

Y luego obtenga esto por JS así:

 const modal = document.querySelector("#modal"); const openModal = document.querySelector(".open-button"); const closeModal = document.querySelector(".close"); const submitForm = document.querySelector("#submitForm"); const userID = document.getElementById("user-id").value; openModal.addEventListener("click", () => { modal.showModal(); }); closeModal.addEventListener("click", () => { modal.close(); }); submitForm.addEventListener("click", () => { var title = document.getElementById("title").value; var desc = document.getElementById("description").value; if (title && desc) { alert(userID); } else { print("Please fill everything up!"); } })

Por supuesto, puede obtener el valor de entrada oculto de diferentes maneras, como:

 const userID = document.getElementsByName("userId")[0];

ACTUALIZAR:

Bueno, estoy de acuerdo con los argumentos de M. Eriksson en los comentarios. Tal vez se deba reconsiderar la lógica detrás de este código.

about 4 years ago · Juan Pablo Isaza Denunciar

0

Aquí está mi sugerencia:

No envíe la identificación de usuario en el JS y elimínela del formulario por completo.

Si sabe que se supone que es el usuario actual, obtenga la identificación del usuario de la sesión en PHP en la página que recibe la solicitud de formulario. No necesita enviarlo al cliente solo para recuperarlo en PHP.

Si lo envía desde el cliente, aún necesita validar/verificar la identificación, ya que nunca debe confiar en los datos de confianza que obtiene del cliente. Cualquiera puede modificar esa ID en su cliente/navegador y enviar lo que quiera.

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda