php 使用onclick函数插入数据库

y4ekin9u  于 2023-01-04  发布在  PHP
关注(0)|答案(3)|浏览(145)

我正在开发一种基于Course wise,Subject wise的问题搜索引擎,通过输入关键字或问题,在这里我基于搜索词对3个表table_onetable_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()函数。

<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>

上面的脚本显示确认框,当我点击按钮,我的问题是,确认后,我想插入我的问题到数据库中的新表,并显示消息,如“问题已添加”在前面的问题永久,因为我知道我不能写PHP内部的Jquery函数任何帮助可能会感激。

jxct1oxe

jxct1oxe1#

您可以通过包含 AJAX 来实现这一点。put ajax代码可能如下所示:

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

不要忘记在html页面的head标签中包含jquery cdn链接。

6qqygrtg

6qqygrtg2#

你需要发送一个 AJAX 请求.你需要通过post或get方法发送它到一个php脚本,这个脚本将返回json,这样你就可以在页面上更新结果.上面的答案有一个ajax脚本的例子,用post方法发送:如果通过表单或数组提交数据,则需要对数据进行sielize。
这应该可以帮助您http://www.w3schools.com/php/php_ajax_database.asphttps://api.jquery.com/serialize/

mcvgt66p

mcvgt66p3#

Onclick -你需要用 AJAX 来做这件事。所以基本上,你需要PHP加上javascript。你可以使用类似JS库的Jquery来轻松支持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">

将其更改为button,并给予它javascript保存()函数(可以是您指定的任何名称)。
第一个月
在这个例子中,我添加了一个参数到保存函数,它应该从id为“title”的html输入文件中获取一个值.在这个页面上,有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函数执行时,它会发送POST请求到你的路径/你的文件. php
在那里,你可以通过yourpath/yourfile.php轻松获取POST数据:

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) 
}

相关问题