我正在为我们学校节目中的问答节目制作一个节目。我有一个表,其中包含谁提出了这个问题(在教师中),问题是什么,以及另一个关于该问题的答案的表。所以,我有一个包含三列的表格。
现在,我想做的是,当页面加载时,它将显示许多标记为 的链接。我回显了每个链接,这样当您单击其中任何一个链接时,将从 MySQL 表中随机抽取一行,并且“问题”以及提出该特定问题的人将公开显示。
到目前为止,我能够很好地完成所有这些工作。但问题就在这里。
我想以这样的方式执行此操作:单击问题后(确切地说,在显示问题后)该特定行将从 MySQL 表中删除。我不想使用计时器,因为每个问题分配的时间都不同。我想知道 javascript 和 AJAX 中是否有某种“点击后”功能(或某种方法来实现)。或者也许是 PHP 代码?
很抱歉问了这个新手问题。历史老师来了:)
顺便说一句,这是我的代码的一部分:
<?php
$checkrow = $db->query("SELECT * FROM questions WHERE `who` = $teachers");
while ($row = $checkrow->fetch(PDO::FETCH_ASSOC))
{
$who = $row['who'];
$question = $row['question'];
$date =$row['date_asked'];
$ask = $db->query("SELECT COUNT(*) FROM teachers WHERE science = $from AND who = $teachers");
$count = $ask->fetch(PDO::FETCH_NUM);
if($count[0] == 0) {
echo '<a href="#" onClick="readmsg();"> MYSTERY QUESTION </a>';
$fromwho = "From science Department.";
echo "<br>";
} else {
echo '<a href="#" onClick="readmsg();"> MYSTERY QUESTION </a>';
$fromwho = "From your Arts Department.";
echo "<br>";
}
}
?>
这是我的 JavaScript。
<script language="javascript">
function readmsg(){
var qst = "<?php echo $question; ?>";
var dte = "<?php echo $date; ?>";
var frm = "<?php echo $fromwho; ?>";
document.getElementById("displaymsg1").textContent = qst;
document.getElementById("displaymsg2").textContent = dte;
document.getElementById("displaymsg3").textContent = frm;
}
</script>
最佳答案
第一,您必须创建页面delete_question.php
(或类似的方法):
<?php
$db->query(('DELETE FROM questions WHERE ID=' . $_GET['uid']); // make it safer
echo '{result:"done"}';
?>
2、使用ajax删除onclick处理函数发送UID到指定
function delete_question(el) {
$.ajax({
url : 'delete_question.php',
dataType : 'json',
data : {
uid : el.dataset.uid
},
success : function(response) {
// remove line?
$(el).parent().remove();
alert(response.result);
}
});
第三:向元素添加处理程序
<a href="#" onclick="delete_question(this)" data-uid="<?php echo $row['ID'] ?>">
关于javascript - echo onClick 后删除 sql 行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22498868/