This question is unlikely to help any future visitors; it is only relevant to a small geographic area, a specific moment in time, or an extraordinarily narrow situation that is not generally applicable to the worldwide audience of the internet. For help making this question more broadly applicable, visit the help center。
7年前关闭。
嗨,当我打开应用程序时(代码在问题的底部),我立即收到一条错误消息:
上面的错误在视图页面源代码中显示了这一行:
如何解决以上错误?
同样在下面的代码中,当用户从“课程”下拉菜单中选择课程并提交课程时,它会显示一个“模块”下拉菜单,但它也给我另一个错误说明:
上面的错误表明此错误在页面源的第1行中,该行只是空白行。
我的问题是如何在下面的代码中解决所有这两个错误:(以下代码的顺序是应用程序中的确切顺序,首先是php,然后是javascript,我还评论了第267行在哪里(javascript )的第一个错误,并在javascript函数验证所在的位置进行了注释
PHP / HTML
Java脚本
7年前关闭。
嗨,当我打开应用程序时(代码在问题的底部),我立即收到一条错误消息:
SyntaxError:missing ; before statement
上面的错误在视图页面源代码中显示了这一行:
var moduleinfo =
Notice: Undefined variable: moduleInfo in ... on line 267
如何解决以上错误?
同样在下面的代码中,当用户从“课程”下拉菜单中选择课程并提交课程时,它会显示一个“模块”下拉菜单,但它也给我另一个错误说明:
ReferenceError: validation is not defined
上面的错误表明此错误在页面源的第1行中,该行只是空白行。
我的问题是如何在下面的代码中解决所有这两个错误:(以下代码的顺序是应用程序中的确切顺序,首先是php,然后是javascript,我还评论了第267行在哪里(javascript )的第一个错误,并在javascript函数验证所在的位置进行了注释
PHP / HTML
<?php
// connect to the database
include('connect.php');
include('noscript.php');
/* check connection */
if (mysqli_connect_errno()) {
printf("Connect failed: %s\n", mysqli_connect_error());
die();
}
$sql = "SELECT CourseId, CourseNo, CourseName FROM Course ORDER BY CourseNo";
$sqlstmt = $mysqli->prepare($sql);
$sqlstmt->execute();
$sqlstmt->bind_result($dbCourseId, $dbCourseNo, $dbCourseName);
$courses = array(); // easier if you don't use generic names for data
$courseHTML = "";
$courseHTML .= '<select name="courses" id="coursesDrop">' . PHP_EOL;
$courseHTML .= '<option value="">Please Select</option>' . PHP_EOL;
$outputcourse = "";
$hiddencourse = "";
while ($sqlstmt->fetch()) {
$course = $dbCourseId;
$courseno = $dbCourseNo;
$coursename = $dbCourseName;
$courseHTML .= "<option value='" . $course . "'>" . $courseno . " - " . $coursename . "</option>" . PHP_EOL;
if (isset($_POST['courses']) && ($_POST['courses'] == $course)) {
$outputcourse .= "<p><strong>Course:</strong> " . $courseno . " - " . $coursename . "</p>";
$hiddencourse .= "<p><input type='hidden' id='hiddencourse' value='" . $courseno . " - " . $coursename . "'></p>";
}
}
$courseHTML .= '</select>';
?>
<form action="<?php
echo htmlentities($_SERVER['PHP_SELF']);
?>" method="post" onsubmit="return validation();">
<table>
<tr>
<th>Course: <?php
echo $courseHTML;
?></th>
</tr>
</table>
<p><input id="courseSubmit" type="submit" value="Submit Course" name="courseSubmit" /></p>
<div id="courseAlert"></div>
<div id="targetdiv"></div>
</form>
<?php
if (isset($_POST['courseSubmit'])) {
//get the form data
$coursesdrop = (isset($_POST['courses'])) ? $_POST['courses'] : '';
$modulequery = "
SELECT
m.ModuleId, m.ModuleNo, m.ModuleName, m.Credits
FROM
Module m
WHERE
m.ModuleId NOT IN (
SELECT cm.ModuleId
FROM Course_Module cm
WHERE cm.CourseId = ?
)
ORDER BY m.ModuleNo
";
$moduleqrystmt = $mysqli->prepare($modulequery);
// You only need to call bind_param once
$moduleqrystmt->bind_param("i", $coursesdrop);
// get result and assign variables (prefix with db)
$moduleqrystmt->execute();
$moduleqrystmt->bind_result($dbModuleId, $dbModuleNo, $dbModuleName, $dbCredits);
$moduleqrystmt->store_result();
$modulenum = $moduleqrystmt->num_rows();
$moduleHTML = '<select name="module" id="modulesDrop">' . PHP_EOL;
$moduleHTML .= '<option value="">Please Select</option>' . PHP_EOL;
$moduleInfo = array();
while ($moduleqrystmt->fetch()) {
$moduleHTML .= sprintf("<option value='%s'>%s - %s</option>", $dbModuleId, $dbModuleNo, $dbModuleName) . PHP_EOL;
$moduleData = array();
$moduleData["ModuleId"] = $dbModuleId;
$moduleData["ModuleNo"] = $dbModuleNo;
$moduleData["ModuleName"] = $dbModuleName;
$moduleData["Credits"] = $dbCredits;
array_push($moduleInfo, $moduleData);
}
$moduleHTML .= '</select>';
$moduleexist = "
<div id='rt-container'>
<form id='moduleExistForm'>
<p><strong>Current Modules</strong></p>
<p>{$moduleSELECT}</p>
</form>
</div>";
echo $moduleexist;
}
?>
Java脚本
<script type="text/javascript">
$(document).ready(function () {
var moduleinfo = <?php echo json_encode($moduleInfo); ?> ; //line 267
$('#modulesDrop').change(function () {
var moduleId = $(this).val(),
moduledata;
for (var i = 0, l = moduleinfo.length; i < l; i++) {
if (moduleinfo[i].ModuleId == moduleId) {
moduledata = moduleinfo[i];
}
}
var currentindex = $('#credits').val(moduledata.Credits);
});
});
//below is the validation() function
function validation() {
var isDataValid = true;
var courseTextO = document.getElementById("coursesDrop");
var errCourseMsgO = document.getElementById("courseAlert");
if (courseTextO.value == "") {
$('#targetdiv').hide();
$('#moduleForm').hide();
$('#detailsForm').hide();
$('#addbtn').hide();
errCourseMsgO.innerHTML = "Please Select a Course";
isDataValid = false;
} else {
errCourseMsgO.innerHTML = "";
}
return isDataValid;
}
</script>
最佳答案
删除您的php行中的空间:var moduleinfo = <? php echo json_encode($moduleInfo); ?> ;
至var moduleinfo = <?php echo json_encode($moduleInfo); ?> ;
<? php
应该像<?php
一样在一起