He hecho de la forma de los datos del cliente se forma cuando hago clic en el botón enviar datos Json para el cliente. Pero mi código no es para insertar datos en la base de datos. Soy nuevo en tecnología web, por favor, dime donde estoy equivocado.

mi Script:

 <script>   
    $(document).ready(function(){              
            $("#btnBooking").on("click", function(){                   

                var uName = document.getElementById('userName').value;        
                var mailId = document.getElementById('addressemailId').value;           
                var mobNum = document.getElementById('userContactNumber').value;                    
                $.ajax({
                    url:"http://192.168.1.11/customerhomes/customer.php", 
                    type:"GET", 
                    dataType:"json", 
                    data:{type:"booking",Name:uName, Email:mailId, Mob_Num:mobNum}, 
                    //type: should be same in server code, otherwise code will not run
                    ContentType:"application/json", 
                    success: function(response){ 
                            alert("13");                                                 
                        }, 
                        error: function(err){ 
                        alert(JSON.stringify(err)); 
                    } 
                })              
            }); 
    });
</script>

formulario en html

<body>
<div class="page-header text-center">
<form >
<div class="col-lg-8">                                  
<div class="form-group">
<label class="col-lg-3 control-label">Name:<font style="color: red;">*</font></label>
<div class="col-lg-9">
<input type="text" class="form-control" id="userName" name="userName" placeholder="Full Name" value="">
</div>
</div>
<div class="form-group">
<label class="col-lg-3 control-label">Mobile:<font style="color: red;">*</font></label>
<div class="col-lg-9">
<input type="text" class="form-control" id="userContactNumber" name="userContactNumber" type="number" placeholder="" onkeypress="enableKeys(event);" maxlength="10" placeholder="9966778888">
</div>
</div>
<div class="form-group">
<label class="col-lg-3 control-label">Email:<font style="color: red;">*</font></label>
<div class="col-lg-9">                                  
<input type="text" class="form-control" name="addressemailId" id="addressemailId" placeholder="[email protected]" value="">
</div>
</div>  
<div class="form-group marg-bot-45">
<label class="col-lg-3 control-label"></label>
<div class="col-lg-9">
<a href="" class="btn btn-info"  id="btnBooking">Confirm Booking</a>
</div>
</div>
</div>
</form>
</div>
</body>

código de servidor

<?php
header('Access-Control-Allow-Origin: *');//Should work in Cross Domaim ajax Calling request
mysql_connect("localhost","root","1234");
mysql_select_db("customer_details");
if(isset($_GET['type']))
{
if($_GET['type']=="booking"){
$name = $_GET ['Name'];
$mail = $_GET ['Email'];
$mobile = $_GET ['Mob_Num'];
$query1 = "insert into customer(cust_name, cust_mobile, cust_email) values('$name','$mail','$mobile')";
$result1=mysql_query($query1);
}
}
else{
echo "Invalid format";
}
  • Parece que usted está enviando datos con el formato json con php pero en el lado del servidor no decodificar –> mira esta respuesta stackoverflow.com/questions/4343596/parsing-json-file-with-php
  • También, para los propósitos de aprendizaje, tener una mirada en declaraciones preparadas aquí (como creo que es uno de los más útiles y respuestas alrededor)
  • Jan Legner, gracias por responder, pero este enlace para sqlinjection….
  • los errores durante la ejecución de código ?
  • Usted necesita para decodificar sus datos en json, cuando se envían a php.
InformationsquelleAutor geeks | 2015-01-17

3 Comentarios

  1. 1

    Utilizar este

    Código JavaScript:

    <script>
    $(document).ready(function(){
    $("#btnBooking").on("click", function(e){
    //as you have used hyperlink(a tag), this prevent to redirect to another/same page
    e.preventDefault();
    //get values from textboxs  
    var uName = $('#userName').val();
    var mailId = $('#addressemailId').val();
    var mobNum = $('#userContactNumber').val();
    $.ajax({
    url:"http://192.168.1.11/customerhomes/customer.php",
    type:"GET",
    dataType:"json",
    data:{type:"booking",Name:uName, Email:mailId, Mob_Num:mobNum},
    //type: should be same in server code, otherwise code will not run
    ContentType:"application/json",
    success: function(response){
    alert(JSON.stringify(response));
    },
    error: function(err){
    alert(JSON.stringify(err));
    }
    })
    });
    });
    </script>

    Código PHP

    <?php
    header('Access-Control-Allow-Origin: *');//Should work in Cross Domaim ajax Calling request
    mysql_connect("localhost","root","1234");
    mysql_select_db("customer_details");
    if(isset($_GET['type']))
    {
    $res = [];
    if($_GET['type'] =="booking"){
    $name  = $_GET ['Name'];
    $mail  = $_GET ['Email'];
    $mobile  = $_GET ['Mob_Num'];
    $query1  = "insert into customer(cust_name, cust_mobile, cust_email) values('$name','$mail','$mobile')";
    $result1 = mysql_query($query1);
    if($result1)
    {
    $res["flag"] = true;
    $res["message"] = "Data Inserted Successfully";
    }
    else
    {
    $res["flag"] = false;
    $res["message"] = "Oppes Errors";
    }
    }
    }
    else{
    $res["flag"] = false;
    $res["message"] = "Invalid format";
    }
    echo json_encode($res);
    ?>

    Si los datos se inserta con éxito return true bandera con el mensaje, de lo contrario, de falsa bandera con el mensaje

    • Gracias Ahora los datos se insertan en la base de datos, Podría usted decirme por qué antes no era insertar..
    • Probablemente es porque al hacer clic en el enlace de Confirmar la Reserva, y un enlace para que lo que sucede cuando usted haga clic en en la que redirigir a la misma página(página de actualización), utilice el botón en lugar de enlace, mientras que el uso de ajax o el uso preventDefault()
    • confirmó que el único problema.
  2. 0

    Quisiera, en primer lugar cambiar el «LLEGAR» a un «POST» en tanto la llamada ajax y la recepción de página PHP en el servidor.

    En segundo lugar, me gustaría comprobar que los valores son, en realidad se pasa a la página PHP mediante el uso de echo a la salida de cada uno de ellos en el PHP lado. De esta manera usted sabrá, al menos, los valores están llegando.

    JavaScript:

    var uName = $('#userName').val();        
    var mailId = $('#addressemailId').val();           
    var mobNum = $('userContactNumber').val();                    
    $.ajax({
    url:"http://192.168.1.11/service4homes/customer.php", 
    type:"POST", 
    data:{type:"booking",Name:uName, Email:mailId, Mob_Num:mobNum}, 
    complete: function(response){ 
    var test = $.parseHTML(response);
    alert(test);
    }
    });

    Código PHP:

    echo $_POST["type"];
    echo $_POST["Name"];
    //etc...
    • ¿por qué necesita echo en php de código..
    • mi código es para asegurarse de que los valores son en realidad los que se pasan de un lugar a otro. El PHP valores de salida (si está disponible) y, a continuación, el ajax de alerta el resultado. Usted también podría usar Chrome dev tools (Ctrl+Shift+i) y haga clic en la pestaña «Red» a la vista de la solicitud y la respuesta de el archivo PHP cuando haga clic en enviar. Una vez que hayas probado el presentar obras de datos y se transmite correctamente, el siguiente paso sería comprobar la conexión db y luego de la inserción. Compruebe todo lo que un paso a la vez, básicamente!
    • Pero me han hecho eco en mi código else{ echo «formato no Válido»; }
    • sí, pero mi lógica es que usted necesita para realmente confirmar que el Ajax está pasando realmente los valores desde el formulario web en el código PHP.
  3. 0

    tratar de esto, podrían ser de ayuda.

    en su función de ajax:

    1er cambio :
    ContentType:»application/json» a contentType: «application/json; charset=utf-8»

    de datos:{type:»de reserva»,Nombre:uName, Correo electrónico:mailId, Mob_Num:mobNum} cambio de datos:{type1:»de reserva»,Nombre:uName, Correo electrónico:mailId, Mob_Num:mobNum}. ver que tipo de conjunto como de OBTENER en función de ajax, así que estoy pensando que el «tipo» es la palabra reservada, así que no podría funcionar. y también verificar su url de donde usted está enviando petición ajax si es correcto o no bcoz está utilizando la dirección ip.

    en su código de servidor que estoy viendo error tipográfico.
    hay espacio entre

    $_GET [‘nombre’], $_GET [‘Email’], $_GET [‘Mob_Num’].

    no debe haber ningún espacio para cambiar a este,

    $_GET[‘nombre’]

    $_GET[‘Email’]

    $_GET[‘Mob_Num’]

Dejar respuesta

Please enter your comment!
Please enter your name here