Note that there are some explanatory texts on larger screens.

plurals
  1. POHow to perform jquery code straight away when page opens
    text
    copied!<p>I have php/mysqli and jquery code below where it displays a course drop down menu and a module drop down menu:</p> <pre><code> $courseactive = 1; $sql = "SELECT CourseId, CourseNo, CourseName FROM Course WHERE CourseActive = ? ORDER BY CourseNo"; $sqlstmt=$mysqli-&gt;prepare($sql); $sqlstmt-&gt;bind_param("i",$courseactive); $sqlstmt-&gt;execute(); $sqlstmt-&gt;bind_result($dbCourseId, $dbCourseNo, $dbCourseName); $courses = array(); // easier if you don't use generic names for data $courseHTML = ""; $courseHTML .= '&lt;select name="courses" id="coursesDrop" onchange="getModules();"&gt;'.PHP_EOL; $courseHTML .= '&lt;option value=""&gt;Please Select&lt;/option&gt;'.PHP_EOL; $outputcourse = ""; while($sqlstmt-&gt;fetch()) { $course = $dbCourseId; $courseno = $dbCourseNo; $coursename = $dbCourseName; $courseHTML .= "&lt;option value='".$course."'&gt;" . $courseno . " - " . $coursename . "&lt;/option&gt;".PHP_EOL; if (isset($_POST['courses']) &amp;&amp; ($_POST['courses'] == $course)) { $outputcourse = "&lt;p&gt;&lt;strong&gt;Course:&lt;/strong&gt; " . $courseno . " - " . $coursename . "&lt;/p&gt;"; } } $courseHTML .= '&lt;/select&gt;'; $moduleHTML = ""; $moduleHTML .= '&lt;select name="modules" id="modulesDrop"&gt;'.PHP_EOL; $moduleHTML .= '&lt;option value=""&gt;Please Select&lt;/option&gt;'.PHP_EOL; $moduleHTML .= '&lt;/select&gt;'; $pHTML = ""; ?&gt; &lt;script type="text/javascript"&gt; function getModules() { var course = jQuery("#coursesDrop").val(); jQuery('#modulesDrop').empty(); jQuery('#modulesDrop').html('&lt;option value=""&gt;Please Select&lt;/option&gt;'); jQuery.ajax({ type: "post", url: "module.php", data: { course:course }, success: function(response){ jQuery('#modulesDrop').append(response); } }); } &lt;/script&gt; </code></pre> <p>What happens in the above code is that when the user selects a Course from the course drop down menu, it will navigate to the module.php page where in that script it will perform a query and output the modules which belongs to that course in the module drop down menu on this page.</p> <p>But now I am thinking of not including the course drop down menu at all as it is not really needed. So I only have a module drop down menu. I still want the modules to be displayed by still navigating to the module.php script to display the modules option though.</p> <p>So my question is that what do I need to change in the jquery code so that when I open up the above script, it will perform the jquery straight away and display the list of modules in the drop down menu (without relying on the Course drop down menu as that drop down menu will be removed)?</p> <p>I am assuming that the jquery will need to go into a document.ready() function?</p> <p>UPDATE:</p> <pre><code> &lt;script type="text/javascript"&gt; $(document).ready( function(){ function getModules() { jQuery.ajax({ type: "post", url: "module.php", success: function(response){ jQuery('#modulesDrop').append(response); } }); }); } &lt;/script&gt; </code></pre> <p>module.php page:</p> <p>` <pre><code> // connect to the database include('connect.php'); /* check connection */ if (mysqli_connect_errno()) { printf("Connect failed: %s\n", mysqli_connect_error()); die(); } $moduleactive = 1; $sql = "SELECT ModuleId, ModuleNo, ModuleName FROM Module WHERE ModuleActive = ? ORDER BY ModuleNo"; $sqlstmt=$mysqli-&gt;prepare($sql); $sqlstmt-&gt;bind_param("i", $moduleactive); $sqlstmt-&gt;execute(); $sqlstmt-&gt;bind_result($dbModuleId,$dbModuleNo,$dbModuleName); $moduleHTML = ""; while($sqlstmt-&gt;fetch()) { $moduleHTML .= sprintf('&lt;option value="%1$s_%2$s_%3$s"&gt;%1$s - %2$s&lt;/option&gt;'.PHP_EOL, $dbModuleNo, $dbModuleName, $dbModuleId); } echo $moduleHTML; $sqlstmt-&gt;execute(); ?&gt;` </code></pre>
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload