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

Yo tengo una tabla principal. y he creado un modal con otra tabla. mi problema es que no puedo enviar variables de la tabla principal a mi modal para poder hacer una consulta mysql para hacer un where con la variable POST que envio a mi tabla modal.
Este en mi tabla principal con la etiqueta a tengo:

<a href="#finalizarCliente" class="delete" data-toggle="modal" data-cod_base="<?php echo $cod_base; ?>" data-tuc="<?php echo $tuc?>">
<i style="color: #58E531;" class="material-icons" data-toggle="tooltip" title="Finalizar" >how_to_reg</i>
</a>

Luego en mi script, para abrir mi modal tengo:

$('#finalizarCliente').on('show.bs.modal', function (event) {
var button = $(event.relatedTarget)
      var tuc = button.data('tuc') 
      $('#edit_tuc').val(tuc)
      var cod_base = button.data('cod_base') 
      $('#edit_id').val(cod_base)
})

He intentado hacer por jquery ajax con el type POST pero no me funciono. O derrepente estaba haciendo mal mi ajax. No lo se por eso si me ayudaran se los agradeciera.

Este es mi modal:

<?php
    include ("conexion.php");
    $query5 = "SELECT * FROM detallegestion ORDER BY fecha_gestion DESC";
    $querycont = mysqli_query($con,$query5);

?>

    <div id="modalHistorial" class="modal fade" role="dialog" aria-labelledby="ModalLabel" aria-hidden="true">
        <div class="modal-dialog modal-lg">
            <!-- Modal Content -->
            <div class="modal-content">
                <!-- Modal Header -->
                <div class="modal-header">
                    <button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
                    <h3 class="text-info">Listado de gestiones</h3>
                </div>
                <!-- END Modal Header -->

                <!-- Modal Body -->
                <div class="modal-body">...............

Y como ven al principio de mi modal quiero hacer la consulta mysql pero usando el where con la variable que quiero enviar en la etiqueta <a> al principio de la tabla principal

1 Respuesta

1voto

jj19958 Puntos4130

esto es un pequeño ejemplo que creo que te puede ayudar...

<?php
$username = "root";
$password = "root";
$hostname = "localhost";
$db_name = "bd";

//connection to the database
$mysqli = new mysqli($hostname, $username, $password, $db_name);
/* check connection */
if ($mysqli->connect_errno) {
    printf("Connect failed: %s\n", $mysqli->connect_error);
    exit();
}
?>

<?php
    require('conn.php');

    $result = $mysqli->query("SELECT * FROM `detalles`");
?>
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Using Bootstrap modal</title>
    <!-- Bootstrap Core CSS -->
    <link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet">
</head>
<body>
<!-- Modal -->
<div class="modal fade" id="exampleModal" tabindex="-1" role="dialog" aria-labelledby="modal" aria-hidden="true">
    <div class="modal-dialog">
        <div class="modal-content">
            <div class="modal-header">
                <button type="button" class="close" data-dismiss="modal"><span aria-hidden="true">&times;</span><span class="sr-only">Close</span></button>
                <h4 class="modal-title" id="modal">Edit Member Detail</h4>
            </div>
            <div class="dash">

            </div>

        </div>
    </div>
</div>
<div class="container">
    <div class="row">
        <div class="col-lg-12">
            <h1 class="page-header">Members Details</h1>
        </div>
        <!-- /.col-lg-12 -->
    </div>
    <div class="row">
        <div id="member" class="col-lg-12">
            <table class="table table-striped table-bordered">
                <thead>
                <tr>
                    <th>Nombre</th>
                    <th>ap</th>
                    <th>am</th>
                    <th>X</th>
                    <th></th>
                </tr>
                </thead>
                <tbody>
                    <?php
                         while (detalles = mysqli_fetch_assoc($result)):
                            echo '<tr>';
                               echo '<td>'.detalles['nombre'].'</td>';
                               echo '<td>'.detalles['telefono'].'</td>';
                               echo '<td>'.detalles['direccion'].'</td>';
                               echo '<td>'.detalles['correo'].'</td>';
                               echo '<td>
                                        <a class="btn btn-small btn-primary"
                                           data-toggle="modal"
                                           data-target="#exampleModal"
                                           data-whatever="'.detalles['sn'].' ">Edit</a>
                                     </td>';
                            echo '</tr>';
                         endwhile;
                         /* free result set */
                         $result->close();
                    ?>
                </tbody>
            </table>
        </div>
    </div>
</div>
<!-- jQuery (necessary for Bootstrap's JavaScript plugins) -->
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
<!-- Latest compiled and minified JavaScript -->
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js" integrity="sha384-Tc5IQib027qvyjSMfHjOMaLkfuWVxZxUPnCJA7l2mCWNIpG9mGCD8wGNIcPD7Txa" crossorigin="anonymous"></script>
<script>
    $('#exampleModal').on('show.bs.modal', function (event) {
          var button = $(event.relatedTarget) // Button that triggered the modal
          var recipient = button.data('whatever') // Extract info from data-* attributes
          var modal = $(this);
          var dataString = 'id=' + recipient;

            $.ajax({
                type: "GET",
                url: "editdata.php",
                data: dataString,
                cache: false,
                success: function (data) {
                    console.log(data);
                    modal.find('.dash').html(data);
                },
                error: function(err) {
                    console.log(err);
                }
            });
    })
</script>
</body>
</html>

<?php
    require('conn.php');
    $id = $_GET['id'];

    if (isset($_POST['submit'])) {
        $id = $_POST['id'];
        $nombre = $_POST['nombre'];
        $telefono = $_POST['telefono'];
        $direccion = $_POST['direccion'];
        $correo = $_POST['correo'];
        $mysqli->query("UPDATE `detalles` SET `nombre` = '$nombre', `telefono` = '$telefono', `direccion`='$direccion', `correo`='$correo' WHERE `sn`=$id");
        header("location:index.php");
    }

    detallesbers = $mysqli->query("SELECT * FROM `detalles` WHERE `sn`='$id'");
    detalles = mysqli_fetch_assoc(detallesbers);

?>
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Using Bootstrap modal</title>

    <!-- Bootstrap Core CSS -->
    <link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet">
</head>
<body>
<form method="post" action="editdata.php" role="form">
    <div class="modal-body">
        <div class="form-group">
            <label for="id">ID</label>
            <input type="text" class="form-control" id="id" name="id" value="<?php echo detalles['sn'];?>" readonly="true"/>

        </div>
        <div class="form-group">
            <label for="name">Nombre</label>
            <input type="text" class="form-control" id="nombre" name="nombre" value="<?php echo detalles['nombre'];?>" />
        </div>
        <div class="form-group">
            <label for="telefono">Phone</label>
                <input type="text" class="form-control" id="telefono" name="telefono" value="<?php echo detalles['telefono'];?>" />
        </div>
        <div class="form-group">
            <label for="direccion">Address</label>
            <input type="text" class="form-control" id="direccion" name="direccion" value="<?php echo detalles['direccion'];?>" />

        </div>
        <div class="form-group">
      <label for="correo">Email</label>
            <input type="text" class="form-control" id="correo" name="correo" value="<?php echo detalles['correo'];?>" />
        </div>
        </div>
        <div class="modal-footer">
            <input type="submit" class="btn btn-primary" name="submit" value="Update" />&nbsp;
            <button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
        </div>
    </form>
</body>
</html>

0voto

ahuamanie comentado

Muchas gracias por responder, intente hacerlo como en tu codigo:

<script>
    $('#exampleModal').on('show.bs.modal', function (event) {
          var button = $(event.relatedTarget) // Button that triggered the modal
          var recipient = button.data('whatever') // Extract info from data-* attributes
          var modal = $(this);
          var dataString = 'id=' + recipient;

            $.ajax({
                type: "GET",
                url: "editdata.php",
                data: dataString,
                cache: false,
                success: function (data) {
                    console.log(data);
                    modal.find('.dash').html(data);
                },
                error: function(err) {
                    console.log(err);
                }
            });
    })
</script>

En mi caso lo puse asi:

$('#modalHistorial').on('show.bs.modal', function (event) {
            var button = $(event.relatedTarget) // Button that triggered the modal
            var code = button.data('code') 
            var tuc = button.data('tuc') 
            var cod_base = button.data('cod_base') 

            var modal = $(this);
            var dataString = 'id=' + tuc;

            $.ajax({
                type: "GET",
                url: "html/modal_historial.php",
                data: dataString,
                cache: false,
                success: function (data) {
                    console.log(data);
                },
                error: function(err) {
                    console.log(err);
                }
            });

          })

Y aun así en el modal intento llamarlo como tu explicación, $id = $_GET['id'];
Pero aun así no me muestra. Me da un error de variable indefinido.

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