I am getting two sets of errors I can;t seem to figure out. One is a error in my javascript in my error console stating:
Syntax Error: missing ; before statement:
Notice: undefined variable courseDatas in ..... line 28
The other error I am getting is a mysqli/php error which states:
Warning: array_push() expects parameter 1 to be array, ... on line 247
How can both these errors be removed?
Javascript:
<script type="text/javascript">
$(document).ready( function(){
var coursedatas = <?php echo json_encode($courseDatas); ?>; //error here
$('#coursesDrop').change(function()
{
var courseId = $(this).val(),
coursedata;
for (var i = 0, l = coursedatas.length; i < l; i++)
{
if (coursedatas[i].courseId = courseId) { coursedata = coursedatas[i]; }
}
var index = $('#newDuration option[value="' + courseData.Duration + '"]').index('#newDuration option');
$('#newDuration')[0].selectedIndex = index;
});
});
</script>
…..
PHP:
$coursequery = "
SELECT CourseId, CourseNo, CourseName, Duration
FROM Course
ORDER BY CourseNo
";
$courseqrystmt=$mysqli->prepare($coursequery);
// You only need to call bind_param once
$courseqrystmt->execute();
$courseqrystmt->bind_result($dbCourseId,$dbCourseNo,$dbCourseName,$dbDuration);
$courseqrystmt->store_result();
$coursenum = $courseqrystmt->num_rows();
$courseHTML = '';
$courseHTML = '<select name="courses" id="coursesDrop">'.PHP_EOL;
$courseHTML .= '<option value="">Please Select</option>'.PHP_EOL;
while ( $courseqrystmt->fetch() ) {
$courseHTML .= sprintf("<option value='%s'>%s - %s</option>", $dbCourseId,$dbCourseNo,$dbCourseName) . PHP_EOL;
$courseData = array();
$courseData["CourseId"] = $dbCourseId;
$courseData["CourseNo"] = $dbCourseNo;
$courseData["CourseName"] = $dbCourseName;
$courseData["Duration"] = $dbDuration;
array_push($courseDatas, $courseData); //error here
}
$courseHTML .= '</select>';
The
$courseDatasvariable needs to be defined outside of your while loop as an array.EDITED – HERE IS WHAT YOUR SCRIPT NEEDS TO LOOK LIKE: