在Javascript之前首先执行PhP代码

<?PHP //$errorMessage = ""; //$check = ""; if ($_SERVER['REQUEST_METHOD'] == 'POST'){ //=================================================== // GET THE QUESTION AND ANSWERS FROM THE FORM //=================================================== $sID = $_POST['studentID']; $sID = htmlspecialchars($sID); $firstName = $_POST['firstName']; $firstName = htmlspecialchars($firstName); $lastName = $_POST['lastName']; $lastName = htmlspecialchars($lastName); $grade = $_POST['grade']; $grade = htmlspecialchars($grade); //var_dump($grade); //============================================ // OPEN A CONNECTION TO THE DATABASE //============================================ $user_name = "root"; $password = ""; $database = "surveyTest"; $server = "127.0.0.1"; $db_handle = mysql_connect($server, $user_name, $password); $db_found = mysql_select_db($database, $db_handle); if ($db_found) { //============================================ // GET THE LAST QUESTION NUMBER //============================================ $SQL = "Select * FROM students WHERE SID='$sID'"; $result = mysql_query($SQL); $db_field = mysql_fetch_assoc($result); $studentID = $db_field['SID']; var_dump($studentID); //========================================================= // Add a student to the students TABLE //========================================================= $SQL = "INSERT INTO students (SID, fName, lName, Grade) VALUES ('$sID', '$firstName', '$lastName', '$grade')"; $result = mysql_query($SQL); //============================================================= // SET Multiple rows IN THE answers TABLE for each question for a given student. //============================================================= /*$SQL = "Select * FROM tblquestions"; $result = mysql_query($SQL); $numRows = mysql_num_rows($result); //return number of rows in the table for ($i = 1; $i    Survey Admin Page   

Enter student ID:

Enter First Name:

Enter Last Name:

Select Grade: First Grade Second Grade Third Grade Fourth Grade Fifth Grade Sixth Grade Seventh Grade Eighth Grade

$(function(){ if ($('form').length > 0) { $('form').submit(function(e){ var check = ""; alert(check); if (check != "") { alert ("This user already exists"); return false; } else { return true; } }); } })

上面的代码用于将学生添加到数据库中,我正在尝试进行一些表单validation以避免重复记录。 我的问题是我设置了一个php变量$ studentID来validation数据库是否包含具有相同ID的学生。

但是,当我尝试添加重复的记录时,似乎我的javascript代码首先执行,这可以通过JQuery代码中的警告消息观察到它显示一个空字符串框。 再次执行代码,做正确的事情。

有关如何解决此问题的任何帮助?

在初始页面加载时:流程如下所示:

服务器端代码 – >将数据发送到客户端 – >浏览器开始渲染并执行JS

在表格上提交:

客户端执行代码(javascript) – >将数据发送到服务器 – >服务器获取数据和进程

要改变它的工作方式你想要做一个ajax或post表单提交和“成功”,然后执行上面的JavaScript。 您可以发布到同一页面或将其更改为RESTful服务。

以下是jQuery的AJAX和POST函数示例:

AJAX

 $.ajax({ type: "POST", url: url, data: data, success: success, dataType: dataType }); 

POST(JS)

 $.post('ajax/test.html', function(data) { $('.result').html(data); }); 

以下是两个片段, 专门针对您结果

的JavaScript / jQuery的

 $(function () { if ($('form').length > 0) { $('form').submit(function (e) { e.preventDefault(); $.ajax({ type: "POST", url: "YOUR-URL", data: YOUR - FORM - DATA, success: function (result) { //result will contain the xml or JSON result of calling the FORM var check = ""; alert(check); if (check != "") { alert("This user already exists"); return false; } else { return true; } }, dataType: "XML-OR-JSON" }); }); } })