最简单的jQuery,PHP,AJAX和sqlite示例?

我很难理解这一切是如何协同工作的。 我已经摆弄了几天,并且无法得出任何结果。 我正在尝试填写表单中的文本字段,并且在提交表单时,我想使用ajax将文本添加到我的sqlite数据库。

我知道你需要在jquery中调用$ .get,这是在表单提交时触发的。 这似乎工作正常,因为我可以从那里触发js警报框。 但是,当我传递php脚本的地址,该脚本有使用PDO添加到sqlite数据库的行时,没有任何内容添加到数据库中。 但是,当我使用php cli运行这个php脚本时,会有一些东西被添加到db中。

我似乎错过了这里必不可少的一步。 如果有人能为我弥合这个差距,我真的很感激!

编辑:按照Martin的要求,这里有一些代码:

我的php生成一些像这样的列表,中间有一个表单:

  • hello
  • world

然后我的jquery代码看起来添加在列表上方的文本框中的任何内容进行ajax调用。 这是在$(document).ready(function(){中。

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

    我的add.php文件看起来像这样,如果我在cli上执行php脚本,它会在我的数据库中插入一些内容:

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

    不要忘记HTTP是无状态协议。 您对Web服务器发出的每个HTTP请求都被视为相同。 这表示HTTP请求是否是使用AJAX进行的。

    我想说的是AJAX是一个客户端实现。 所有AJAX意味着您可以与网络服务器进行交互,而无需重新加载页面。 在JavaScript中第一次实现AJAX请求通常是一个大脑弯曲,因为回调的要求和交互的一般异步性使得难以掌握。

    然而,在服务器上,应该没有什么可担心的。 AJAX请求仍然是HTTP请求,因此无论您是在浏览器中导航到http://www.yourwebsite.com/ajax/interact.php?a=1&b=2 ,还是使用AJAX发出HTTP GET请求,您的PHP脚本仍然会表现完全相同。 如果你var_dump($_GET); 在任何一种情况下,你都会得到一个数组,其ab成员分别等于12

    如果您可以通过手动导航到URL成功地在浏览器中模拟AJAX请求,那就是服务器完成的工作。

    建立之后,您的JavaScript应该是这样的:

     $('#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(); }); 

    一旦你对使用jQuery的AJAX方法充满信心,你可能希望查看诸如serialize()来帮助你,你可以将jQuery代码开发成如下代码:

     $('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(); }); 

    希望这可以帮助 :)

    你的submit函数应该return false;