簡體   English   中英

無法使用JSON將下拉列表中所選值的數據庫值解析到文本框

[英]Unable to parse database values from selected value in drop down list to textbox using JSON

我正在嘗試將數據從數據庫解析到數據庫中的文本框。 但是,在這里瀏覽了許多問題之后,我找不到適合我的解決方案。 這是我的代碼:

編輯.php

 <!DOCTYPE HTML> <html><meta charset="ISO-8859-1"> <head> <title>Kinder App - Edit</title> </head> <style> body {background-image: url("/KinderApp/images/Untitled-1.png"); background-repeat: no-repeat;}] header {color:black; background-color:white;} footer {color:green; background-color:lightgrey; } h1 {font-family:Comic Sans, Comic Sans MS, cursive; font-size:50px; } h6 {font-family:Comic Sans, Comic Sans MS, cursive; font-size:15px; color: red; font-weight:bold; } span {font-family:Comic Sans, Comic Sans MS, cursive; font-size: 15px; color:blue; } </style> <link href="general.css" type="text/css" rel="stylesheet" /> <script src="dropzone.min.js"></script> <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.1/jquery.min.js" type="text/javascript"></script> <script type="text/javascript"> function display_c(){ var refresh=1000; // Refresh rate in milli seconds mytime=setTimeout('display_ct()',refresh) } function display_ct() { var strcount var x = new Date() document.getElementById('ct').innerHTML = x; tt=display_c(); } function showModule(str) { if (str=="") { document.getElementById("id").value=""; return; } if (window.XMLHttpRequest) {// code for IE7+, Firefox, Chrome, Opera, Safari xmlhttp=new XMLHttpRequest(); } else {// code for IE6, IE5 xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); } xmlhttp.onreadystatechange=function() { if (xmlhttp.readyState==4 && xmlhttp.status==200) { var data = JSON.parse(xmlhttp.responseText); { document.getElementById("name").value = data.mname; document.getElementById("desc").value = data.mdesc; document.getElementById("icon").value = data.micon; document.getElementById("vers").value = data.mvers; document.getElementById("loca").value = data.mloca; } } } xmlhttp.open("GET","getmodule.php?q="+str,true); xmlhttp.send(); } </script> <body onload=display_ct();> <center><header>Kinder App</header></center> <br> <center><h1>Edit</h1></center> <br> <form action="edit_file.php" class="dropzone"><center><h2>Drag and Drop to upload</h2> <br><h6>WARNING: uploading files with the same file name will oveerwrite the uploaded one.</h6></center></form> <form action="edit_file.php" method="POST"> <center><table border="1" width="50%"> <tr> <td><center>Module ID:</center></td> <td><center> <select id="id" name="mID" class="quform-tooltip chosen-select" onchange="showModule(this.value)">"; <?php define("DB_USER", "root"); define("DB_PASSWORD", ""); define("DB_HOST", "localhost"); define("DB_NAME", "kp2admin"); //echo '<select name="mID">'; $dbc = mysqli_connect(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME); $result = mysqli_query($dbc, "SELECT Module_ID FROM module ORDER BY Module_ID"); if ($result != null) { echo '<option value="" selected>Select</option>'; $num_results = mysqli_num_rows($result); for ($i=0; $i<$num_results; $i++) { $row = mysqli_fetch_array($result); $mId = $row['Module_ID']; echo '<option value="' .$mId. '">' .$mId. '</option>'; } //echo '</select>'; } mysqli_close($dbc); ?> </select> </center></td> </tr> <tr> <td><center>Module Name:</center></td> <td><center><input type="text" id="name" name="mName"/></center></td></tr> <tr> <td><center>Description:</center></td> <td><center><input type="text" id="desc" name="mDesc"/></center></td> </tr> <tr> <td><center>Icon:</center></td> <td><center><input type="text" id="icon" name="icon"/></center></td> </tr> <tr> <td><center>Version:</center></td> <td><center><input type="text" id="vers" name="mVersion"/></center></td> </tr> <tr> <td><center>Location:</center></td> <td><center><input type="text" id="loca" name="mLocate"/></center></td> </tr> </table> </center> <center><input type="submit" value="Update Details"></center> </form> <p><center><a href="list_modules.php">See all files</a></center></p> <p align="right"><b><span id='ct' ></span></b></p> <p id="demo"></p> <form name="myform" action="KinderAppAdmin.html" method="POST"> <input type="image" src="/KinderApp/images/sds.png" name="image" width="61" height="49"> </form> <footer><center>Copyright © All Rights Reserved</center></footer> </body> </html> 

getmodule.php

 <?php $q = intval($_GET['q']); define("DB_USER", "root"); define("DB_PASSWORD", ""); define("DB_HOST", "localhost"); define("DB_NAME", "kp2admin"); $dbc = mysqli_connect(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME); $sql="SELECT Module_Name, Description, Icon, Version, Location FROM module WHERE Module_ID = '".$q."'"; $result = mysqli_query($dbc, $sql); $info = array(); while($row = mysqli_fetch_array($result)) { $moduleName = $row['Module_Name']; $description = $row['Description']; $icon = $row['Icon']; $version = $row['Version']; $location = $row['Location']; $info[] = array( 'mID' => $moduleId, 'mname' => $moduleName, 'mdesc' => $description, 'micon' => $icon, 'mvers' => $version, 'mloca' => $location ); } echo json_encode($info); mysqli_close($dbc); ?> 

如您所見,我正在嘗試將每一列解析為各自的文本框,但無法這樣做。 我正在使用JSON解析數據,但無濟於事。 幫助將不勝感激。

編輯:

解析數據時,firebug報告此錯誤: http : //i.imgur.com/H5JTmcv.png

經過三天的故障排除,我找到了解決自己問題的方法。

這是正確的代碼:

Edit.php:

 <!DOCTYPE HTML> <html><meta charset="ISO-8859-1"> <head> <title>Kinder App - Edit</title> </head> <style> body {background-image: url("/KinderApp/images/Untitled-1.png"); background-repeat: no-repeat;}] header {color:black; background-color:white;} footer {color:green; background-color:lightgrey; } h1 {font-family:Comic Sans, Comic Sans MS, cursive; font-size:50px; } h6 {font-family:Comic Sans, Comic Sans MS, cursive; font-size:15px; color: red; font-weight:bold; } span {font-family:Comic Sans, Comic Sans MS, cursive; font-size: 15px; color:blue; } </style> <link href="general.css" type="text/css" rel="stylesheet" /> <script src="dropzone.min.js"></script> <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.1/jquery.min.js" type="text/javascript"></script> <script type="text/javascript"> function display_c(){ var refresh=1000; // Refresh rate in milli seconds mytime=setTimeout('display_ct()',refresh) } function display_ct() { var strcount var x = new Date() document.getElementById('ct').innerHTML = x; tt=display_c(); } function showModule(str) { if (str=="") { document.getElementById("id").value=""; return; } if (window.XMLHttpRequest) {// code for IE7+, Firefox, Chrome, Opera, Safari xmlhttp=new XMLHttpRequest(); } else {// code for IE6, IE5 xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); } xmlhttp.onreadystatechange=function() { if (xmlhttp.readyState==4 && xmlhttp.status==200) { var data = JSON.parse(xmlhttp.responseText); { for(var i=0;i<data.length;i++) { document.getElementById("name").value = data[i].mname; document.getElementById("desc").value = data[i].mdesc; document.getElementById("icon").value = data[i].micon; document.getElementById("vers").value = data[i].mvers; document.getElementById("loca").value = data[i].mloca; } } } } xmlhttp.open("GET","getmodule.php?q="+str,true); xmlhttp.send(); } function editModule(str) { if (str=="") { document.getElementById("id").value=""; return; } if (window.XMLHttpRequest) {// code for IE7+, Firefox, Chrome, Opera, Safari xmlhttp=new XMLHttpRequest(); } else {// code for IE6, IE5 xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); } xmlhttp.onreadystatechange=function() { if (xmlhttp.readyState==4 && xmlhttp.status==200) { var data = JSON.parse(xmlhttp.responseText); { for(var i=0;i<data.length;i++) { document.getElementById("name").value = data[i].mname; document.getElementById("desc").value = data[i].mdesc; document.getElementById("icon").value = data[i].micon; document.getElementById("vers").value = data[i].mvers; document.getElementById("loca").value = data[i].mloca; } } } } xmlhttp.open("POST","edit_file.php?q="+str,true); xmlhttp.send(); } </script> <body onload=display_ct();> <center><header>Kinder App</header></center> <br> <center><h1>Edit</h1></center> <br> <form action="edit_file.php" class="dropzone"><center><h2>Drag and Drop to upload</h2> <br><h6>WARNING: uploading files with the same file name will oveerwrite the uploaded one.</h6></center></form> <form action="edit_file.php" method="POST"> <center><table border="1" width="50%"> <tr> <td><center>Module ID:</center></td> <td><center> <select id="id" name="mID" class="quform-tooltip chosen-select" onchange="showModule(this.value)">"; <?php define("DB_USER", "root"); define("DB_PASSWORD", ""); define("DB_HOST", "localhost"); define("DB_NAME", "kp2admin"); //echo '<select name="mID">'; $dbc = mysqli_connect(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME); $result = mysqli_query($dbc, "SELECT Module_ID FROM module ORDER BY Module_ID"); if ($result != null) { echo '<option value="" selected>Select</option>'; $num_results = mysqli_num_rows($result); for ($i=0; $i<$num_results; $i++) { $row = mysqli_fetch_array($result); $mId = $row['Module_ID']; echo '<option value="' .$mId. '">' .$mId. '</option>'; } //echo '</select>'; } mysqli_close($dbc); ?> </select> </center></td> </tr> <tr> <td><center>Module Name:</center></td> <td><center><input type="text" id="name" name="mName"/></center></td></tr> <tr> <td><center>Description:</center></td> <td><center><input type="text" id="desc" name="mDesc"/></center></td> </tr> <tr> <td><center>Icon:</center></td> <td><center><input type="text" id="icon" name="icon"/></center></td> </tr> <tr> <td><center>Version:</center></td> <td><center><input type="text" id="vers" name="mVersion"/></center></td> </tr> <tr> <td><center>Location:</center></td> <td><center><input type="text" id="loca" name="mLocate"/></center></td> </tr> </table> </center> <center><input type="submit" value="Update Details"></center> </form> <p><center><a href="list_modules.php">See all files</a></center></p> <p align="right"><b><span id='ct' ></span></b></p> <p id="demo"></p> <form name="myform" action="KinderAppAdmin.html" method="POST"> <input type="image" src="/KinderApp/images/sds.png" name="image" width="61" height="49"> </form> <footer><center>Copyright © All Rights Reserved</center></footer> </body> </html> 

getmodules.php:

 <?php $q = intval($_GET['q']); define("DB_USER", "root"); define("DB_PASSWORD", ""); define("DB_HOST", "localhost"); define("DB_NAME", "kp2admin"); $dbc = mysqli_connect(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME); $sql="SELECT Module_Name, Description, Icon, Version, Location FROM module WHERE Module_ID = '".$q."'"; $result = mysqli_query($dbc, $sql); $info = array(); while($row = mysqli_fetch_array($result)) { $moduleName = $row['Module_Name']; $description = $row['Description']; $icon = $row['Icon']; $version = $row['Version']; $location = $row['Location']; $info[] = array( 'mname' => $moduleName, 'mdesc' => $description, 'micon' => $icon, 'mvers' => $version, 'mloca' => $location ); } echo json_encode($info); mysqli_close($dbc); ?> 

顯然,我在數組中有一個額外的聲明。 感謝Cerlin和Atul的評論。 這對我的問題很有幫助。 再次感謝

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM