在删除之前使用JavaScript提示不起作用

时间:2015-05-05 07:36:17

标签: javascript php html sql

我有一个页面,其中列出了我的数据库中的表的内容,我试图添加一个按钮来删除一行。我查了一下并使用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:大多数非代码都是法语的,如果我不翻译,那就很抱歉。

1 个答案:

答案 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'