Javascript onClick删除查询麻烦

时间:2014-03-31 07:07:54

标签: javascript php forms onclick sql-delete

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

我一直在:

  

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

我的代码按照它编写的顺序(全部在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的新手。

2 个答案:

答案 0 :(得分:0)

你没有在你的回声中转义引号..:

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

答案 1 :(得分:0)

只是一个美化提示:您可以将整个字符串与echo连接起来,而不是每行.,而且每行仍然使用换行符。

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

我还建议在html的属性中使用引号。在像type=text这样的简短属性上,它不是强制性的,但像src这样的较长值确实离不开。

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

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检查它的值是否为真(-ish)。由于confirm返回布尔输出,因此无需检查true == true还是false == true