JavaScript - Pasar una variable PHP a JavaScript Ajax

 
Vista:

Pasar una variable PHP a JavaScript Ajax

Publicado por Nerea (1 intervención) el 16/12/2022 18:48:59
Tengo un archivo HTML donde tengo una tabla con imágenes. Quiero hacer que cuando el usuario pulse una imagen u otra inicie sesión en diferentes usuarios. Para ello he creada una función Ajax que quiero que se ejecute mediante el atributo onclick de la imagen. Mi problema es que tengo una variable logo que es la que identifica a cada usuario y me gustaría poder pasarla a través de la función Ajax. Son archivos muy largos, pero un trozo del HTML sería:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<table>
              <tr>
                        <?php
                        while(isset($resultado))
                        {
                            ?>
                                <td>
                                    <img class="click" src="<?php echo $resultado['logo'] ?>" onclick="my_function()"><br><br><?php echo $resultado['nombre'] ?>
                                </td>
                            <?php
                            $resultado = $consulta->fetch_assoc();
                        }
                        ?>
                        <td>
                            <img width="154" src="imagenes/new.png"><br>
                            <form action="usuario.php" method="GET">
                                <input class="formulario" type="text" name="nombre" value="Introduce aquí el nombre">
                                <?php if(isset($_POST['enviar']) && empty($_POST['nombre'])) { echo "<span style='color:red;'> ¡Introduce el nombre de la nueva cuenta!</span>"; } ?> <br>
                                <input class="boton2" type="submit" name="enviar" value="Añadir usuario">
                            </form>
                        </td>
                    <tr>
                </table>

Siendo $resultado['logo'] la variable que quiero mantener. Por otro lado la función llamada mediante onclick:

1
2
3
4
5
6
7
8
9
10
11
12
13
<script>
function my_function() {
            var request = new XMLHttpRequest();
            request.onreadystatechange = function() {
            if (this.readyState == 4 && this.status == 200) {
                alert(this.responseText);
                }
            };
            request.open("POST", "ajax_funcion.php", true);
            request.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
            request.send();
        }
    </script>

Mientras que el archivo 'ajax_funcion.php' al cual llama la función sería:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?php
    session_start();
@$conexion = new mysqli('localhost','root','','bdintegradora');
    $conexion->set_charset("utf8");
    $sql = "SELECT U.cuenta,U.nombre,U.tipo FROM usuarios U, logos L WHERE U.cuenta=L.cuenta AND U.nombre=L.nombre AND L.logo='".$resultado['logo']."'";
    $consulta = $conexion->query($sql);
    $resultado = $consulta->fetch_assoc();
    if(isset($resultado))
    {
        $_SESSION['usuario'] = $resultado['nombre'];
        $_SESSION['tipo'] = $resultado['tipo'];
        $_SESSION['logo'] = $resultado['logo'];
        header("Location:paginas/pagina.php");
    }

Espero que me podáis ayudar, es para un proyecto de PHP, con lo que realmente de JavaScript apenas tengo conocimientos y de las funciones Ajax no había oído si quiero hablar hasta que me he puesto a investigar cómo hacer lo que quería. Así un poco en resumen, se trata de una página donde accedes y te logeas con tu cuenta, entonces aparece una página con 2,3 o 4 iconos que hacer referencia a los usuarios que hay en dicha cuenta, ahí es donde el usuario decide con que usuario, de los disponibles en su cuenta, va a acceder a la web. Una vez en la web, aparece el icono del usuario en el índice y le saluda con su nombre (en la base de datos de MySQL tengo almacenados en la misma tabla el usuario con su logo correspondiente). Espero que haberme explicado lo mejor posible. Muchas gracias de antemano
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