TransWikia.com

variable no definida en mi cupon

Stack Overflow en español Asked on November 29, 2021

estoy intentando hacer un cupon el cual consulte a traves de ajax si el cupon existe me mande una alerta que si existe y si no que me mande un error con un mensaje y hasta aca el codigo funciona pero al pasarle una variable pero me sale el siguiente error de variable precios_id no definida no se porque me sale

vista

<link rel="stylesheet" href="css/styles.css">
<script src="https://code.jquery.com/jquery-3.2.1.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.12.9/umd/popper.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/js/bootstrap.min.js"></script>
<script type="text/javascript">
$(document).ready(function() {  
    $('#cupon').on('blur', function(){
        $('#result-cupon').html('<img src="images/loader.gif" />').fadeOut(1000);

        var cupon = $(this).val();    
        var dataString = 'cupon='+cupon;
        $.ajax({
            type: "POST",
            url: "{{asset('check_cupon_availablity.php')}}",
            data: dataString,
            success: function(data) {
                $('#result-cupon').fadeIn(1000).html(data);
            }
        });
    });              
});    
</script>
</head>
<div class="">
    <div class="row">
        <div id="content" class="col-lg-8">
            <form action="#" method="post" >
                <div class="form-group">
                    <label for="cupon">Cupon</label>
                    <input type="text" class="form-control" id="cupon" name="cupon" placeholder="Captura aquí tu cupón">
                    <label for="precios_id">precios_id</label>
                   <input type="text" class="form-control" id="precios_id" name="precios_id" placeholder="" value="{{$xd}}">

                    <div style="background: #1abac7;width: 18%;border-radius: 10%" >
                    <img src="{{asset('images/lupa.png')}}" width="20px" style="margin-right: 11%" > Buscar
                    </div>
                    <div id="result-cupon" ></div>
                </div>
            </form>
        </div>
    </div>     
</div>

esta es la conexion a php que hace la consulta para saber si el cupon existe y quiero jalarme ademas de si existe su id check_cupon_availablity.php

<?php 

define('DB_SERVER', 'localhost');
define('DB_SERVER_USERNAME', 'root');
define('DB_SERVER_PASSWORD', '');
define('DB_DATABASE', 'prueba');

$connexion = new mysqli(DB_SERVER, DB_SERVER_USERNAME, DB_SERVER_PASSWORD, DB_DATABASE);



sleep(1);
if (isset($_POST)) {

    $cupon = (string)$_POST['cupon'];
    $precios_id = (string)$_POST['precios_id'];
  
    
    
    $result = $connexion->query(
        'SELECT * FROM precios WHERE cupon = "'.strtolower($cupon).'"'
    );
    
    if ($result->num_rows > 0) {
        echo '<div class="alert alert-success"><strong>Enhorabuena!</strong> Cupon valido. '.$cupon.' '.$precios_id.'<a class="btn" href="https://pagina.com/">dd</a>
    </div>';
    } else {
        echo '<div class="alert alert-danger"><strong>Oh no!</strong> Cupon invalido.</div>';
    }
}  

introducir la descripción de la imagen aquí

One Answer

Ya que estas enviando los datos por AJAX deberias incluir todos los datos necesarios: cupon, precios_id

$(document).ready(function() {  
  $('#cupon').on('blur', function(){
    $('#result-cupon').html('<img src="images/loader.gif" />').fadeOut(1000);

    var cupon = $(this).val(); 
    var precios_id = $("#precios_id").val();   
    var dataString = 'cupon='+cupon+'&precios_id='+precios_id;
    $.ajax({
        type: "POST",
        url: "{{asset('check_cupon_availablity.php')}}",
        data: dataString,
        success: function(data) {
            $('#result-cupon').fadeIn(1000).html(data);
        }
    });
  });              

});

Otra manera mas conveniente suponiendo que deseas enviar todos los valores del formulario, es usar la funcion $(form).serialize() para generar automaticamente los datos de POST

$.ajax({
        type: "POST",
        url: "{{asset('check_cupon_availablity.php')}}",
        data: $("form").serialize(),
        success: function(data) {
            $('#result-cupon').fadeIn(1000).html(data);
        }
    });

Mejor aun puedes agregar un id al formulario

<form id="myform" action="" method="post" >

Y luego usarlo como referencia en data:

data: $("#myform").serialize(),

EDIT:

Para usar los valores en la respuesta utiliza:

if ($row = $result->fetch_assoc()){
  $precio=$row["preciomx"];
  echo "<div class='....  $precio >"
}

Answered by F.Igor on November 29, 2021

Add your own answers!

Ask a Question

Get help from others!

© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP