Я изначально закодировал эту часть, чтобы вернуть единую точку данных. Я понял, что мне нужно больше полей, возвращенных с событием onchange (выпадающее меню), и изменил его, чтобы использовать JSON. Он не возвращает никаких данных. Выпадающий динамически создается через PHP при первой загрузке страницы. Я новичок в этом, поэтому любая помощь будет высоко оценена.
Выпадающий код:
<p id="dropdown" style="DISPLAY: none" > <?php $query = "call test.spsMSTR_AllCatListBuild"; $stmt = $conn->query( $query ); $dropdown = "<select id='catlist' name='catlist' onchange='getval(this);'>"; $dropdown .= "\r\n<option value= 'NA'>Select Category</option>"; foreach ($stmt as $row) { $dropdown .= "\r\n<option value='{$row['ID']}'>{$row['RPT_NAME']}</option>"; } $dropdown .= "\r\n</select>"; echo $dropdown; $conn = null; ?> </p>
Код Ajax / JSON:
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script> <script id="source" language="javascript" type="text/javascript"> $(document).ready(function(){ $("#catlist").change(function(){ var vid = document.getElementById("catlist").value; $.getjson("ajax.php", {catid:vid}, function(result){ alert(result); } .error(function(xhr) { alert(xhr) }) ; ) })}) </script>
Код PHP:
<?php include('./DBConfig.php'); ?> <?php $vid = $_GET["catid"]; $query = "SELECT RPT_NAME, ACTIVE FROM test.MSTR_REPORT_MASTER WHERE ID = $vid" ; $stmt = $conn->query( $query ); //$result = $stmt->fetchColumn(); $result = $stmt->fetch(PDO::FETCH_ASSOC); echo json_encode($result); ?>