Javascript on单击删除查询麻烦


Javascript onClick delete query trouble

这是一个个人项目,不上线,我不需要担心mysql折旧或SQL注入

我一直得到:

解析错误:语法错误、意外的"返回"(T_RETURN)、预期 C:''wamp''www''StudentExams''examisud.php 第 64 行中的 '"," 或 ';"

'

我的代码按编写顺序排列(全部在 1 个 php 文件中):

我的删除查询:

if (isset($_POST['delete'])) //DELETE QUERY
{
$DeleteQuery = "DELETE FROM Exam WHERE exam_id='$_POST[hidden]'";
mysql_query($DeleteQuery, $con);
};

我的表格:

echo "<form action=examisud.php method=post>"; //HTML FORM ECHOED OUT BY PHP
echo "<tr>";
echo "<td>" . "<input type=text name=exam_id value=" . $record['exam_id'] . " </td>";
echo "<td>" . "<input type=text name=subject value=" . $record['subject'] . " </td>";
echo "<td>" . "<input type=text name=exam_date value=" . $record['exam_date'] . " </td>";
echo "<td>" . "<input type=hidden name=hidden value=" . $record['exam_id'] . " </td>";
echo "<td>" . "<input type=image name=update value=update id=submit src=images/update.png" . " </td>";
echo "<td>" . "<input type=image name=delete value=delete id=submit onClick="return deleteconfig()" src=images/delete.png" . " </td>";
echo "</tr>";
echo "</form>";
}
echo "<form action=examisud.php method=post>";
echo "<tr>";
echo "<td><input type=text name=uexam_id></td>";
echo "<td><input type=text name=usubject></td>";
echo "<td><input type=text name=uexam_date></td>";
echo "<td>" . "<input type=image name=insert value=insert id=submit src=images/insert.png" . " </td>";
echo "</form>";
echo "</table>";
echo '</div>';

我的JavaScript:

<html>
<header>
<script>
function deleteconfig(){
var del=confirm("Are you sure you want to delete this record?");
if (del==true){
   alert ("record deleted")
}else{
    alert("Record Not Deleted")
}
return del;
}
</script>
</header>
</html>

如何使此代码正常工作?我需要一个弹出窗口,要求我确认是否要删除字段值。我是php和javascript的新手。

你没有在echo中转义引号.. :

echo "<td>" . "<input type=image name=delete value=delete id=submit onClick='"return deleteconfig()'" src=images/delete.png" . " </td>";

只是一个装饰性提示:您可以用 . 连接整个字符串,而不是每行上的echo,并且仍然对每行使用换行符。

此外,您似乎忘记关闭几个input元素。

我还建议在 html 的属性中使用引号。对于像 type=text 这样的短属性,这不是强制性的,但像src这样的长值真的离不开。

最后,尝试使用单引号 ( ' ) 而不是双引号 ( " ),并避免在不需要的地方进行字符串连接(组合 2 个静态字符串),如下所示:

echo '<form action="examisud.php" method="post">'. //HTML FORM ECHOED OUT BY PHP
        '<tr>'.
            '<td><input type="text" name="exam_id" value="' . $record['exam_id'] . '" </td>'.
            '<td><input type="text" name="subject" value="' . $record['subject'] . '" </td>'.
            '<td><input type="text" name="exam_date" value="' . $record['exam_date'] . '" </td>'.
            '<td><input type="hidden" name=hidden" value="' . $record['exam_id'] . '" </td>'.
            '<td><input type="image" name="update" value="update" id="submit" src="images/update.png" ></td>'.
            '<td><input type="image" name="delete" value="delete" id="submit" onClick="return deleteconfig()" src="images/delete.png" ></td>'.
        '</tr>'.
    '</form>';
}
echo '<form action="examisud.php" method="post">'.
        '<tr>'.
            '<td><input type="text" name="uexam_id"></td>'.
            '<td><input type="text" name="usubject"></td>'.
            '<td><input type="text" name="uexam_date"></td>'.
            '<td><input type="image name="insert" value="insert" id="submit" src="images/insert.png" ></td>'.
        '</tr>'.
    '</form>'.
'</table>'.
'</div>';

使用单引号告诉 php 解释器不要费心检查字符串中的变量。这一点,以及减少的串联量使代码更有效率,在我看来,代码更具可读性。

至于你的JavaScript:

if (del==true){

可以替换为

if (del){

if检查其值是否为 true(-ish)。由于confirm返回布尔输出,因此无需检查是true == true还是false == true