Simples jQuery, PHP, AJAX y ejemplo sqlite?

Me está resultando realmente difícil entender cómo funciona todo esto en conjunto. He jugueteado durante unos días con esto y no he podido encontrar ningún resultado. Estoy intentando completar un campo de texto en un formulario, y cuando se envíe el formulario, quiero agregar el texto a mi sqlite db usando ajax.

Entiendo que necesita una llamada $ .get en jquery que se desencadena en el envío del formulario. Parece que funciona bien, ya que puedo activar cuadros de alerta js desde allí. Sin embargo, cuando paso la dirección del script php que tiene líneas para agregar a sqlite db usando PDO, nada se agrega a la base de datos. Sin embargo, cuando ejecuto este script php usando php cli, algo se agregará al db.

Me parece que me falta un paso esencial aquí. ¡Realmente apreciaría que alguien pudiera cerrar esta brecha para mí!

Editar: Según lo solicitado por Martin, aquí hay un código:

Mi php genera una lista como esta con un formulario en el medio:

  • hello
  • world

Entonces mi código jquery busca agregar lo que esté en el cuadro de texto justo encima de él en la lista hace una llamada ajax. Esto está dentro de $ (document) .ready (function () {.

  $("form").submit(function() { var inputText = $("input").val(); $.ajax({ type: "POST", url: "add.php", data: inputText, success: function() { $('#formItem').prev().after( "
  • " + inputText + "
  • " )} }); });

    Mi archivo add.php se ve así y se insertará algo en mi db si ejecuto el script php en el cli:

     prepare("INSERT INTO ThisTable (content, priority) VALUES ('lolololol', 1);"); $sql->execute(); $base = null; ?> 

    No olvide que HTTP es un protocolo sin estado. Cada solicitud HTTP que realice en su servidor web se trata de la misma manera. Esto representa si la solicitud HTTP se realizó con AJAX o no.

    Lo que trato de decir es que AJAX es una implementación del lado del cliente. Todo lo que AJAX significa es que puedes interactuar con tu servidor web sin tener que volver a cargar tu página. La implementación de una solicitud de AJAX por primera vez en JavaScript es a menudo una inclinación de cabeza, porque el requisito de devoluciones de llamada y la naturaleza asíncrona general de la interacción hace que sea difícil de entender.

    En el servidor, sin embargo, no debería haber nada de qué preocuparse. Una solicitud AJAX sigue siendo una solicitud HTTP, por lo tanto, si navega a http://www.yourwebsite.com/ajax/interact.php?a=1&b=2 en su navegador o realiza una solicitud HTTP GET utilizando AJAX, su PHP script todavía se comportará exactamente igual. Si var_dump($_GET); en cualquier situación, obtendrá una matriz cuyos miembros a y b equivalen a 1 y 2 respectivamente.

    Si puede emular la solicitud AJAX en su navegador con éxito navegando a la URL manualmente, ese es el trabajo del servidor hecho.

    Habiendo establecido eso, tu JavaScript debería verse más o menos así:

     $('#yourForm').bind('submit', function (event) { jQuery.get('/ajax/interact.php', 'a=1&b=2', function (response) { alert("AJAX request succeeded, response from the server was: " + response); }); event.preventDefault(); }); 

    Una vez que esté seguro de usar los métodos AJAX de jQuery, le recomendamos que consulte métodos como serialize() para ayudarlo, y puede desarrollar su código jQuery de la siguiente manera:

     $('form.ajax').live('submit', function (event) { var self = $(this); jQuery[(self.attr('method') || 'get').toLowerCase()](self.attr('action'), self.serialize(), function (response) { alert("AJAX request succeeded, response from the server was: " + response); }); event.preventDefault(); }); 

    Espero que esto ayude 🙂

    Su función de submit debería ser return false;