Вставка в MySQL из PHP (jQuery / AJAX)

Я видел много учебников, но они настолько запутывают и делают то, что я хочу сделать, я просто не понимаю, как использовать существующие материалы из этих учебников и заставить их работать так, как я их хочу.

У меня очень простая форма, содержащая текстовое поле, ярлык и кнопку отправки. Когда пользователь вводит что-то в форму, затем нажимает submit, я хотел бы использовать php и ajaxjquery) для вставки результата формы в базу данных 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); ?> 

Обратите внимание, что ни одно из них не было протестировано. Надеюсь, это тебе поможет.

Часть jQuery часто довольно проста. Он просто перенаправляет обычное действие формы = над обработчиком Javascript. $.post прост в использовании, и вам просто нужно .serialize() чтобы упаковать существующие значения формы в строку:

 <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"]));