我有一个页面,其中列出了我的数据库中的表的内容,我试图添加一个按钮来删除一行。我查了一下并使用JavaScript来做,但它不起作用。
//Deletion
if (isset($_GET['sup']))
{
$sup = $_GET['sup'];
$sql=mysql_query("delete from UCH where id=".$sup);
}
//Fecthing data
$sql='SELECT * FROM uch';
$req=mysql_query($sql);
//Starting the table
$table='<table cellspacing="0" width=100%><tr><td>N°</td><td>Eleve</td><td>Ecole</td><td>Classe</td><td>Mail</td><td>Examen</td><td>Preparation</td>';
$i=0;
while ($data=mysql_fetch_assoc($req))
{
//Alternating the table's background color every other row
$i++;
if ($i%2==1 )
{
$couleurLigne= 'style="background-color: #b7b6b6;"';
}
else
{
$couleurLigne = 'style="background-color: #e8e0e0;"';
}
//Converting bit-type data
if ($data['preparation']=='1') $prepa="oui";
else $prepa="non";
//Introducing the data from the database and the rest of the table
$table.='<tr '.$couleurLigne.'><td>'.$i.'</td><td>'.$data['prenom'].' '.$data['nom'].'</td><td>'.$data['ecole'].'</td><td>'.$data['classe'].'</td><td>'.$data['email']
.'</td><td>'.$data['examen'].'</td><td>'.$prepa.'</td>
<td><a href="admin_U-CH.php?sup='.$data['id'].'" onclick="return confirm("Etes-vous sur(e) de vouloir supprimer cette entree ?")"><div style="color: red;">X</div></a></td><tr>';
}
$table.='</table>';
echo $table;
最后一个单元格包含X
,这是删除行的链接。
实际上,它不会提示我并使用$_GET
值重新加载页面,但它仍然不会删除任何内容。
P.-S:大多数非代码都是法语的,如果我不翻译,那就很抱歉。
答案 0 :(得分:1)
问题在于您的确认文本中的双引号,将它们更改为单引号(简单)或使用\
字符转义它们(也许您会在这里感到困惑):
onclick="return confirm('Etes-vous sur(e) de vouloir supprimer cette entree ?')"
很长的解释是,由于您使用双引号来包装oncilck
方法,因此除非它们被转义,否则不得在包装文本中再次使用它们。但使用单引号是最简单的。
Nota bene:由于您可能会发现自己使用了奇怪的非英语字符(在这种情况下为法语) - 在使用脚本之前检查文本句子总是一个好主意 - 如果你已将文字换成单引号(在onclick
方法中),请确保转义出现在文字中的任何单引号,例如'what\'s up'
或'c\'est la vie'