Вставка в базу данных с использованием функции onclick

Я разрабатываю поисковую систему, основанную на курсе Мудрый, Субъект, вводя ключевое слово или вопрос. Здесь я запрашиваю базу данных на основе поиска по 3 таблицам, а именно table_one , table_two и table_three . Код следующим образом

 <?php if(isset($_GET['submit'])) { $query = $_GET['query']; $query = htmlspecialchars($query); $query = mysqli_escape_string($link,$query); $searchTerms = explode(' ', $query); $searchTermBits = array(); foreach ($searchTerms as $term) { $term = trim($term); if (!empty($term)) { $searchTermBits[] = "question LIKE '%$term%'"; } } $subject_id = $_GET['subject']; $course_id = $_GET['course']; $min_length = 1; if(strlen($query) >= $min_length) { $res = "SELECT id,course_id,subject_id,question,option_a,option_b,option_c,option_d,option_e,correct_ans,fmge_year,contributor FROM table_one WHERE (".implode(' OR ', $searchTermBits).") AND (`subject_id` LIKE '%".$subject_id."%') AND (`course_id` LIKE '%".$course_id."%') UNION ALL SELECT id,course_id,subject_id,question,option_a,option_b,option_c,option_d,option_e,correct_ans,fmge_year,contributor FROM table_two WHERE (".implode(' OR ', $searchTermBits).") AND (`subject_id` LIKE '%".$subject_id."%') AND (`course_id` LIKE '%".$course_id."%') UNION ALL SELECT id,course_id,subject_id,question,option_a,option_b,option_c,option_d,option_e,correct_ans,fmge_year,contributor FROM table_three WHERE (".implode(' OR ', $searchTermBits).") AND (`subject_id` LIKE '%".$subject_id."%') AND (`course_id` LIKE '%".$course_id."%')"; $raw_results = mysqli_query($link,$res) or die (mysqli_error()); if(mysqli_num_rows($raw_results) > 0) { echo "<h3 style='text-align:center;color:#3366CC'><span style='color:#000000'>Search Results For : </span> $query </h3>"; while($results = mysqli_fetch_array($raw_results)) { echo "<div class='content'>"; echo"<h4 id=".$results['id'].">" .preg_replace("/".preg_quote($query, "/")."/i", "<span class=\"highlight\">$query</span>", $results['question']) . "</h4>"; echo"<p id=".$results['id']."><span style='padding-left:20px'>option A : " .$results['option_a']."</span> <br><span style='padding-left:20px'> option B : ".$results['option_b']."</span><br/><span style='padding-left:20px'>option C : ".$results['option_c']. "</span><br><span style='padding-left:20px'>option D : ".$results['option_d']."</span><br><span style='padding-left:20px'> option E : ".$results['option_e']."</span><br><span style='color:#253E66;font-weight:bold;padding-left:20px'>Correct Ans : ".$results['correct_ans']. "</span><br><span style='padding-left:20px'>Question Year : ".$results['question_year']."</span><br><span style='padding-left:20px'>Contributor : ".$results['contributor']."</span><br /> <a onclick=addQuestion('".$results['id']."') href='#'><span class='button'>Add to Question Bank</span></a></p>"; echo "</div>"; } } else{ echo "<span style='height:21px;syle=background-color: #F1F0FF;font-size:25px;color:#CC0000'>Your search - $query - did not match any queries.</span> "; } } } ?> 

Я вызываю следующую функцию addQuestion (), когда я нажимаю ссылку Add to Question Bank.

  <script> function addQuestion(val) { var conf=confirm("Are you sure you want to add this question to Question Bank") if(conf){ //Here I Want some code to update my database. } } </script> 

Сценарий выше показывает окно подтверждения, когда я нажимаю кнопку «Мой вопрос». После подтверждения я хочу вставить свой вопрос в новую таблицу в базе данных и отобразить сообщение «Вопрос добавлено» перед вопросом навсегда, поскольку я знаю, что могу 't писать PHP внутри функции JQuery Любая помощь может быть оценена.

Вы можете достичь этого, включив ajax. поместите код ajax, который может выглядеть следующим образом:

 if(conf){ $.ajax({ type: "POST", url: "$$phpfilepath", data: {param:'$$value'}, success: function(data) { // do the message display code } }); } 

Не забудьте включить ссылку jquery cdn в тег заголовка страницы html.

вам необходимо отправить запрос ajax. вам нужно отправить его либо по почте, либо получить метод в php-скрипт, который вернет json, чтобы вы могли быть обновлены на странице с результатами. в приведенном выше ответе приведен пример сценария ajax, отправленный с помощью метода post: данные должны быть выделены, если вы отправляете их через форму или массив.

это должно помочь вам http://www.w3schools.com/php/php_ajax_database.asp https://api.jquery.com/serialize/

Onclick – вам нужно сделать это с помощью ajax. Таким образом, в основном вам нужен PHP плюс javascript. Вы можете использовать JQuery аналогичной JS-библиотеки для легкой поддержки ajax.

Просто и пример с библиотекой jquery версии 1.11.2, как включить:

 <head> <script src="jquery-1.11.2.min.js"></script> </head> 

Например, если это поле ввода, которое вы хотите сохранить, и кнопку для отправки:

 <input id="title" name="title" /> <input type="submit" value="Save"> 

Измените его на кнопку и дайте ему функцию javascript save () (может быть любое имя, которое вы даете).

<input type="button" onclick="save($('#title').val());" value="Save">

В этом примере я добавил 1 параметр этой функции сохранения, который должен захватить значение из ввода html с идентификатором «title». На этой странице, где есть html, вам нужно включить упомянутую jquery (или аналогичную) библиотеку, а также включить кусок функции javascript для генерации запроса ajax, который здесь называется «save».

Если вы включили библиотеку jquery, вы должны вызвать функцию javascript для сохранения ваших данных перед тегом:

 <script type"text/javascript"> function save(){ $.ajax({ type: "POST", url: "yourpath/yourfile.php", data: {title: title}, success: function(data) { alert("Ajax save executed!"); } }); } </script> 

Когда будет выполняться функция javascript, которую вы назвали save (), она отправит запрос POST в ваш pathpath / yourfile.php

Там вы можете легко получить свои данные POST по адресу yourpath / yourfile.php:

 if(isset($_POST['title'])){ // do something with POST data, save in db.. (make sure to include security when inserting to db) } 

Если вы хотите отправить его с помощью GET, вы легко замените POST с помощью GET :

 function save(){ $.ajax({ type: "GET", 

а также в файле .php, который вы пишете:

 if(isset($_GET['title'])){ // do something with POST data, save in db.. (make sure to include security when inserting to db) }