从PHP插入MySQL(jQuery / AJAX)

我看过很多教程,但是他们很混乱,做我想做的事情,我只是不知道如何从这些教程中使用现有的东西,并使它们按照我希望的方式工作。

我有一个非常简单的表单,包含一个文本框,标签和一个提交button。 当用户input表单中的东西,然后点击submit,我想用php和ajax(用jquery)将表单的结果插入到mysql数据库中。

有人可以告诉我这是如何实现的? 只是一件非常基本的事情就是让我开始。 任何帮助表示赞赏。

谢谢

嗨,这里只是一个简单的例子:

HTML:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>Quick JQuery Ajax Request</title> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <!-- include the jquery lib --> <script type="text/javascript" src="jquery.js"></script> <script type="text/javascript"> var ajaxSubmit = function(formEl) { // fetch where we want to submit the form to var url = $(formEl).attr('action'); // fetch the data for the form var data = $(formEl).serializeArray(); // setup the ajax request $.ajax({ url: url, data: data, dataType: 'json', success: function() { if(rsp.success) { alert('form has been posted successfully'); } } }); // return false so the form does not actually // submit to the page return false; } </script> </head> <body> <form method="post" action="process.php" onSubmit="return ajaxSubmit(this);"> Value: <input type="text" name="my_value" /> <input type="submit" name="form_submit" value="Go" /> </form> </body> </html> 

process.php脚本:

 <?php function post($key) { if (isset($_POST[$key])) return $_POST[$key]; return false; } // setup the database connect $cxn = mysql_connect('localhost', 'username_goes_here', 'password_goes_here'); if (!$cxn) exit; mysql_select_db('your_database_name', $cxn); // check if we can get hold of the form field if (!post('my_value')) exit; // let make sure we escape the data $val = mysql_real_escape_string(post('my_value'), $cxn); // lets setup our insert query $sql = sprintf("INSERT INTO %s (column_name_goes_here) VALUES '%s';", 'table_name_goes_here', $val ); // lets run our query $result = mysql_query($sql, $cxn); // setup our response "object" $resp = new stdClass(); $resp->success = false; if($result) { $resp->success = true; } print json_encode($resp); ?> 

请注意,这些都没有经过testing。 我希望它能帮助你。

jQuery部分通常很简单。 它只是redirect普通表单action = over一个Javascript处理程序。 $.post很容易使用,你只需要.serialize()把现有的表单值打包成一个string:

 <form id="example"> <input name="textbox" ...> <input type=submit name="submitbuttonname" value="submit" onClick="$.post('save.php', $('form#example').serialize())"> 

而在PHP方面,您只需通过$_POST接收内容并将其保存到数据库(使用旧的mysql_函数也是可能的,只是更麻烦):

 $db = new PDO("mysql:..."); if ($_POST["submitbuttonname"]) { $q = $db->prepare("INSERT INTO save (textbox, label) VALUES (?, ?)"; $q->execute(array($_POST["textbox"], $_POST["label"]));