PHP - llamar archivo .php desde una función javascript

 
Vista:

llamar archivo .php desde una función javascript

Publicado por Daniel (15 intervenciones) el 07/03/2021 17:18:53
Hola, con el objetivo de presentar datos provenientes de una base de datos en una lista “Select” creé una función javascript (para poder rellenar el Select) la cual tiene dentro de sí misma código php (para poder hacer la consulta a la base de datos), el problema que se presenta es que cuando llamo al archivo de conexión ‘include (“conexión.php”);’ aparece el error “Uncaught SyntaxError: expected expression, got '<'” haciendo referencia a otra parte del código fuera de la función en cuestión. El problema “se resuelve” cuando se reemplaza la linea include (“conexión.php”); por todo el código que está en el archivo “conexión.php”, es decir, es como si el problema fuera el llamar a un archivo php con código php dentro de una función javascript. Dado que quisiera conservar los datos de conexión en el archivo “conexión.php” y no tenerlos dentro de la función javascript quería preguntarles si hay forma de llamar a un archivo .php desde javascript o que estoy haciendo incorrecto. Dato adicional: la función javascript está en un archivo .php . El código en cuestión es el siguiente (de momento no está llenando el Select, está presentando los datos con “console.log” pero eso no es inconveniente):


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
<script>
//AL HACER CLICK EN EL BOTON SE LLAMA A LA FUNCION presentar3()
document.getElementById("btn_add").onclick= function(){
    presentar3();
}
 
//EMPIEZA LA FUNCION presentar3()
function presentar3(){
 
    // INICIA EL CODIGO PHP DENTRO DE LA FUNCION javascript
    <?php
    //ESTA LINEA ES LA QUE PRESENTA EL ERROR
    include("conexion.php");
    $consulta= "SELECT * from ciudades";
    $resultado= $pdo-> prepare ($consulta);
    $resultado->execute();
 
 
    foreach($resultado->fetchAll() as $row){
        $id_ciudad=$row['id_ciudad'];
        $ciudad= $row['ciudad'];
        echo "var javaciudad = '$ciudad';";
        ?>
         //CIERRE TEMPORAL DE PHP PARA PRESENTAR DATOS
         console.log(javaciudad);
         //REAPERTURA DE PHP
        <?php
    }
    $resultado->closeCursor();
    $resultado=null;
    $pdo = null;
    ?>
 
}</script>

Gracias y saludos.

Daniel
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 393
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

llamar archivo .php desde una función javascript

Publicado por Jefferson (203 intervenciones) el 07/03/2021 21:04:25
Hola amigo no sería más fácil usar Fetch de Javascript o Ajax de JQuery todo asíncrono y así te evitas ligar mangos con peras ?

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

llamar archivo .php desde una función javascript

Publicado por Daniel (15 intervenciones) el 07/03/2021 23:53:26
Probablemente Jefferson, pero como no sé utilizar Fetch o Ajax entonces lo estaba realizando de esa manera. Si acaso tienes algún link que me puedas recomendar con un ejemplo de lo que debo hacer me ayudaría.

Gracias.

Saludos,

Daniel
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 393
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

llamar archivo .php desde una función javascript

Publicado por Jefferson (203 intervenciones) el 08/03/2021 04:17:31
Hola de nuevo hoy acá es de noche muy tarde, si nadie te ha respondido mañana te preparo un ejemplo súper sencillo de usar con fetch de Javascript

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

llamar archivo .php desde una función javascript

Publicado por Daniel (15 intervenciones) el 08/03/2021 13:07:04
Gracias Jefferson, estaré atento.

Saludos.

Daniel
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 393
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

llamar archivo .php desde una función javascript

Publicado por Jefferson (203 intervenciones) el 08/03/2021 13:35:20
Según entendí quieres llenar un select Ciudades desde la base de datos

en la pagina principal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>
<body>
  <button id="boton">boton</button>
  <br>
  <select id="select"></select>
  <script>
    boton.addEventListener('click', () => {
      fetch('solicitud.php', {  // aqui cambias el nombre de la pagina por la tuya
          method: 'POST',
          body: JSON.stringify({
            'solicitud': true
          }),
          headers: {
            'Content-Type': 'application/json'
          }
        })
        .then(res => res.json())
        .then(function(json) {
          for (let i in json) {
            for (let j in json[i]) {
              var option = document.createElement("option");
              option.value = json[i].value;
              option.text = json[i].text;
              select.appendChild(option);
            }
          }
        });
    });
  </script>
</body>
</html>

en la pagina solicitud.php
1
2
3
4
5
6
7
8
9
10
11
12
13
<?php
include 'conexion.php';
$json = json_decode(file_get_contents('php://input'), true);
if($json['solicitud']){
  $qB = "SELECT * from ciudades ORDER BY ciudad asc"; // Aca ordenas tu query
  $rB = $base->query($qB); // aqui cambias la variable $base por la tuya
  $array=array();
  while ($fB = $rB->fetch_array()) {
    array_push($array, array('value' => $fB[0],'text' => $fB[2])); //en mi caso en el field 2 estan los nombres de las ciudades
  }
  echo json_encode($array,true);
}
?>

Rapido, sencillo y facil
Suerte ....
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 393
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

llamar archivo .php desde una función javascript

Publicado por Jefferson (203 intervenciones) el 08/03/2021 13:42:32
Error

En el for sube la variable al primero para que no duplique.

asi
1
2
3
4
5
6
7
8
for (let i in json) {
    var option = document.createElement("option");
    for (let j in json[i]) {
        option.value = json[i].value;
        option.text = json[i].text;
        select.appendChild(option);
    }
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar

llamar archivo .php desde una función javascript

Publicado por Daniel (15 intervenciones) el 11/03/2021 00:53:56
Gracias Jefferson, muy atento como siempre.

Saludos,

Daniel
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar