El siguiente está en la cabeza de mi archivo html, en etiquetas de secuencia de comandos :

$(document).ready(function(){ 
                 $("#Submit").click(function(){
                     var name = $("#name").val();
                     $.ajax({
                         url : "function.php", 
                         type : "POST",
                         data : {"firstname":name},
                         success : function(n){
                            //more code here                         } 
                     });
                 });
 }

Este es el formulario HTML :

<div class="myForm">
                <input name="name" id="name" value="name" onfocus="if (this.value == 'Name') {this.value = '';}" onblur="if (this.value == '') {this.value = 'Name';}" type="text"  />
                <input type="button" value="Submit" id="Submit">
            </div>

Aquí está mi PHP, guarda en un archivo llamado function.php :

<?php
$con=mysqli_connect( "test", "", "", "test");
//Check connection
$name = $_POST['firstname'];
if (mysqli_connect_errno())
  {
  echo "Failed to connect to MySQL: " . mysqli_connect_error();
  }

mysqli_query($con,"INSERT INTO customers (name) VALUES (" + $name + ")");

mysqli_close($con);
?>

La función toma una edad a la llamada, y no se almacena nada en mi base de datos. Soy nuevo en JQuery/Ajax. ¿Cuáles son mis opciones de depuración de aquí? ¿Cuál es el problema probablemente ser ?

Se publicar una variable denominada firstname y la recuperación de una variable denominada name. Deben coincidir. También puede intentar mysqli_query(...) or die (mysqli_error()) para ver cualquiera de los errores de mysql.
El formato de los datos: data: {firstname : name},
Ahora he hecho esta edición. La función se ejecuta mucho más rápido, pero aún no hay datos en mi tabla 🙁
Has escrito mal de nuevo!
es derecho. Además, no olvides mysqli_real_escape_string($con, $name)

OriginalEl autor Simon Kiely | 2013-05-31

1 Comentario

  1. 2

    Prueba este código. He editado el código y añadió PDO que es el nuevo enfoque para conectarse a bases de datos..
    Esto es más seguro y automáticamente se escapa de los datos.

    Tuvieron muchos errores de sintaxis en php. como la cadena de anexar operador en php es . no +.

    <?php
    $name = $_POST['firstname'];
    try {
        //Prepare our connection string and execute it
        $con = new PDO("mysql:host=".HOST.";dbname=".DBNAME, USER, PASS);
    } catch(PDOException $e) {  
        //Connection error jumps here
        echo $e->getMessage();  
    }
    //Define our query here
    $query = $con->prepare("INSERT INTO customers (name) VALUES (:name)");
    //Define our query data here. the name here maps to the :name in the query.
    $data = array("name" => $name);
    try {
        //Try to execute our query
        $query->execute($data);
    } catch(PDOException $e) {
        //Insert error jumps here
        echo $e->getMessage(); 
    }
    ?>

    Acaba de poner en su host, nombre de base de datos, usuario y pass en los lugares mencionados en el código y ya está bueno para ir.

    Para depurar el código php instalar Firebug en firefox y en la página html abrir el firebug haciendo clic derecho sobre la página y seleccionando Inspect element with firebug. abra el Net panel y allí se puede ver la petición de ir. para ver la respuesta y verá los errores probables en su página php.

    Buena Suerte!

    OriginalEl autor Miro Markaravanes

Dejar respuesta

Please enter your comment!
Please enter your name here