我正在开发一种基于Course wise,Subject wise的问题搜索引擎,通过输入关键字或问题,在这里我基于搜索词对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()函数。
<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函数任何帮助可能会感激。
3条答案
按热度按时间jxct1oxe1#
您可以通过包含 AJAX 来实现这一点。put ajax代码可能如下所示:
不要忘记在html页面的head标签中包含jquery cdn链接。
6qqygrtg2#
你需要发送一个 AJAX 请求.你需要通过post或get方法发送它到一个php脚本,这个脚本将返回json,这样你就可以在页面上更新结果.上面的答案有一个ajax脚本的例子,用post方法发送:如果通过表单或数组提交数据,则需要对数据进行sielize。
这应该可以帮助您http://www.w3schools.com/php/php_ajax_database.asphttps://api.jquery.com/serialize/
mcvgt66p3#
Onclick -你需要用 AJAX 来做这件事。所以基本上,你需要PHP加上javascript。你可以使用类似JS库的Jquery来轻松支持ajax。
只是和例子用jquery库1.11.2版如何包含:
例如,如果这是您要保存的输入字段,并单击按钮进行提交:
将其更改为button,并给予它javascript保存()函数(可以是您指定的任何名称)。
第一个月
在这个例子中,我添加了一个参数到保存函数,它应该从id为“title”的html输入文件中获取一个值.在这个页面上,有html,你需要包括提到的jquery(或类似的)库,也包括一个javascript函数来生成 AJAX 请求,这里命名为“save”.
如果你包含了jquery库,你必须在你的标签之前调用javascript函数来保存你的数据:
当你命名为保存()的javascript函数执行时,它会发送POST请求到你的路径/你的文件. php
在那里,你可以通过yourpath/yourfile.php轻松获取POST数据:
如果您想使用GET发送它,可以很容易地将POST替换为GET:
也可以在.php文件中写入: