Javascript 删除表中带有复选框的数据
我在选择选项(我使用ajax)后在网站上显示一个表,并从数据库中获取数据。我想做的是在我的表中插入一个复选框,当它被选中时,删除数据库中的行。我不想使用提交按钮,但只想使用复选框来删除它 我不太擅长ajax和JavaScript。代码如下: 选择:Javascript 删除表中带有复选框的数据,javascript,php,html,ajax,checkbox,Javascript,Php,Html,Ajax,Checkbox,我在选择选项(我使用ajax)后在网站上显示一个表,并从数据库中获取数据。我想做的是在我的表中插入一个复选框,当它被选中时,删除数据库中的行。我不想使用提交按钮,但只想使用复选框来删除它 我不太擅长ajax和JavaScript。代码如下: 选择: <p> <label for="client">Veuillez choisir le fournisseur :</label><br /> &l
<p>
<label for="client">Veuillez choisir le fournisseur :</label><br />
<select name="client" id="client" onchange="showUser(this.value)">
<?php
// echo '<option value=""/></option>';
while ($donnees = $reponse->fetch())
{
echo '<option value='.$donnees['refCustomer'].'>'.$donnees['legalCompanyName'].' </option>';
//$value = $donnees['refCustomer'];
}
$reponse->closeCursor();
?>
</select>
</p>
维莱兹·乔伊斯·勒·福尼瑟爵士:
剧本:
<script>
function showUser(str) {
if (str == "") {
document.getElementById("txtHint").innerHTML = "";
return;
} else {
if (window.XMLHttpRequest) {
// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp = new XMLHttpRequest();
} else {
// code for IE6, IE5
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange = function() {
if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
document.getElementById("txtHint").innerHTML = xmlhttp.responseText;
}
}
xmlhttp.open("GET","getTableBuffer.php?q="+str,true);
xmlhttp.send();
}
}
</script>
函数showUser(str){
如果(str==“”){
document.getElementById(“txtHint”).innerHTML=“”;
返回;
}否则{
if(window.XMLHttpRequest){
//IE7+、Firefox、Chrome、Opera、Safari的代码
xmlhttp=新的XMLHttpRequest();
}否则{
//IE6、IE5的代码
xmlhttp=新的ActiveXObject(“Microsoft.xmlhttp”);
}
xmlhttp.onreadystatechange=函数(){
if(xmlhttp.readyState==4&&xmlhttp.status==200){
document.getElementById(“txtHint”).innerHTML=xmlhttp.responseText;
}
}
open(“GET”、“getTableBuffer.php?q=“+str,true”);
xmlhttp.send();
}
}
getTableBuffer.php:
<?php
$q = intval($_GET['q']);
try
{
$bdd = new PDO());
}
catch (Exception $e)
{
die('Erreur : ' . $e->getMessage());
}
$reponse = $bdd->query('select * from vendor_'.$q.'_offers_ncli_amendments_buffer');
echo '<table class="imagetable">';
echo '<tr>';
echo '<th>code</th>';
echo '<th>dateAdded</th>';
echo '<th>effectiveDate</th>';
echo '<th>price</th>';
echo '<th>type</th>';
echo '<th>destination</th>';
echo '</tr>';
while ($donnees = $reponse->fetch())
{
echo '<tr>';
echo '<td><input type="checkbox" name="code" id="code" value="'.$donnees['code'].'"/>'.$donnees['code'].'</td>';
echo '<td>'.$donnees['dateAdded'].'</td>';
echo '<td>'.$donnees['effectiveDate'].'</td>';
echo '<td>'.$donnees['price'].'</td>';
echo '<td>'.$donnees['type'].'</td>';
echo '<td>'.$donnees['destination'].'</td>';
echo "</tr>";
}
echo "</table>";
echo "</br>";
echo "</br>";
$reponse->closeCursor();
?>
将事件onclick
添加到复选框中:
echo '<td><input onclick="remove(this);" type="checkbox" name="code" id="code" ....';
创建获取代码并从数据库中删除的remove.php
:
function remove(e)
{
if (e.target.checked)
{
....
xmlhttp.open("GET","remove.php?code="+e.target.value,true);
xmlhttp.send();
}
}
<?php
if(isset($_GET['code'])){
//Query to remove from DB where code = $_GET['code']
}
?>
希望这会有所帮助。我看不到从表中删除…
任何地方。我不知道如何获取值并将其删除。您真的应该查看和事件处理程序。尝试使用单击处理程序,并使用.val()
函数获取所单击复选框的值,然后使用.ajax()
创建一个PHP文件的帖子,删除该项目。希望您是一名学生,而这不是一个实时应用程序?请查找字符串转义和清理,因为当前您的代码容易受到多种攻击(SQL注入、XSS、CSRF),因为您在任何地方都使用字符串变量,没有参数或清理。是否可以在其他地方执行ajax功能?我的意思是,我使用ajax显示我的表,为了删除元素,我必须在表中插入复选框,这些复选框也使用ajax?很抱歉,我是javascript和ajax的新手。我可以看到,您已经在ajax调用的getTableBuffer.php
中选中了复选框:。$donnees['code'].'代码>是,现在是:echo'.$donnees['code'].';“要删除元素,我必须在表中插入复选框”您已经在表中插入了复选框,所以只需将click事件附加到复选框,并创建函数remove+php file remove,如回答中所述,它应该可以工作(您不必在另一个表中执行ajax函数)。好的,谢谢!我在复选框中添加了删除函数:echo'.$donnees['code'].';添加了函数remove()和im my remove.php,以便删除该行