|
- <tr>
- <td>Your Name: </td>
- <td><input type="text" name="staffName" id="staffName" onFocus="getleave()">
- </td>
- </tr>
- <script language="Javascript">
- $().ready(function() {
- $("#staffName").autocomplete("staffauto.php", {
- width: 260,
- matchContains: true,
- //mustMatch: true,
- //minChars: 0,
- //multiple: true,
- //highlight: false,
- //multipleSeparator: ",",
- selectFirst: false
- });
- });
- </script>
复制代码- <script language="Javascript">
- var xmlHttp;
- function GetXmlHttpObject(){
-
- var xmlHttp=null;
- try {
-
- // Firefox, Opera 8.0+, Safari
- xmlHttp=new XMLHttpRequest();
- } catch (e) {
-
- //Internet Explorer
- try {
-
- xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
- } catch (e) {
-
- xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
- }
- }
- return xmlHttp;
- }
- function getleave(){
-
- xmlHttp=GetXmlHttpObject();
- if(xmlHttp==null) {
-
- alert ("Browser does not support HTTP Request");
- return;
- }
- var name=document.getElementById("staffName");
- var url="getleave.php?";
- var n="value="+name.value;
- xmlHttp.onreadystatechange=stateChanged;
- xmlHttp.open("POST",url,true);
- xmlHttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
- xmlHttp.send(n);
- function stateChanged() {
-
- if (xmlHttp.readyState=="5" || xmlHttp.readyState=="200"){
-
- var str_text=xmlHttp.responseText;
- if (str_text != ""){
- //alert("没有这个名字的数据");
- //}
- //else {
-
- str_text = str_text.split('|');
-
- document.getElementById("cAnnual").value = str_text[0];
- document.getElementById("cEmergency").value = str_text[1];
- document.getElementById("cMedical").value = str_text[2];
- }
- }
- }
- }
- </script>
- <tr>
- <td>Remaining Leave: </td>
- <td><input type="text" name="cAnnual" ID="cAnnual" size="25" readonly></td>
- <td><input type="text" name="cEmergency" ID="cEmergency" size="25" readonly></td>
- <td><input type="text" name="cMedical" ID="cMedical" size="25" readonly></td>
- </tr>
复制代码 getleave.php- <?php
- include("connect.php");
- if (isset($_POST['value']) && $_POST['value'] != "") {
- $q = $_POST['value'];
-
- $query = "SELECT * FROM tblleavetype WHERE staffName = '".$q."'";
- $result = $db->query($query);
- $row = $result->fetch_array();
-
- $cAnnual = $row['cAnnual'];
- $cEmergency = $row['cEmergency'];
- $cMedical = $row['cMedical'];
-
-
- $arr = array(
- $q =>array(
- 'cAnnual'=>$cAnnual,
- 'cEmergency'=>$cEmergency,
- 'cMedical'=>$cMedical,
- ),
- );
-
-
- foreach($arr as $k=>$v) {
-
- if ($k == trim($q)) {
- echo $v['cAnnual'] . '|'. $v['cEmergency'] .'|'. $v['cMedical'];
- }
- }
- }
- ?>
复制代码 当我输入staffname的时候,他不会pop out我set在tblleavetype的资料。
请各位帮我看看哪里出了问题。
|
|
|
|
|
|
|
|
发表于 1-11-2012 11:43 AM
|
显示全部楼层
有許多 php 的教學會用 html 混合 php code
除非是很固定的網頁,否則個人不太建議用這樣的方法。
你可以考慮用 echo 在不同階段把數字顯示出來,比較容易除錯。
例如基本不會變的 login.php :
- <form method=post action=loginChk.php>
- <br><br>
- <table align=center border=1 cellspacing=0 cellpadding=03>
- <tr valign=middle>
- <th colspan=100 valign=middle height=50>
- <INPUT TYPE='image' SRC='images/key.png'> Login
- </th>
- </tr>
- <tr>
- <td> User Id </td>
- <td>
- <INPUT TYPE='text' NAME='User'>
- </td>
- </tr>
- <tr>
- <td> Password </td>
- <td> <INPUT TYPE='password' NAME='Pwd'> </td>
- </tr>
- <tr>
- <td colspan=100 align=center><br>
- <INPUT TYPE='submit' class='button' value='Login'>
- </td>
- </tr>
- </table>
- </form>
- <table align=center border=0 cellspacing=0 cellpadding=03>
- <tr>
- <td>
- <A href='pwrecovery.php'>Forgot password</a>
- </td>
- </tr>
- </table>
复制代码 除了即時動態的部分,
如果沒必要也不太建議用 javascript 來存取 http 的資料,這些全部在 server site 都可以預先處理。
而如果比較多 dynamic data 用這樣可能比較容易看:
- echo '<table border=1 cellpedding=0 cellspacing=0>';
- echo '<tr><th>Date</th>';
- echo '<th>Name</th>';
- echo '<th>In</th>';
- echo '<th>Out</th>';
- foreach($records as $date => $val ) {
- echo '<tr><td>';
- echo $date . ' ';
- echo substr( date( 'l', strtotime( $date ) ), 0, 3 );
- echo '</td>';
- foreach( $val as $emp => $row ) {
- echo '<tr><td></td>';
- echo '<td>';
- echo $emp;
- echo '</td>';
- echo '<td>';
- echo $row['In'];
- echo '</td>';
- echo '<td>';
- echo $row['Out'];
- echo '</td>';
- echo '</tr>';
- }
- echo '</tr>';
- }
- echo '<table>';
复制代码 |
|
|
|
|
|
|
|
发表于 1-11-2012 03:39 PM
|
显示全部楼层
从你的 input 那边,只有在 onFocus 的时候才会跑 getleave()。如果你要在输入的时候跑,应该是用 onkeyup 吧?
但是在下面你有这行 $('#staffName').autocomplete("staffauto.php", ...),这个是 jQuery 的 autocomplete plugin 吧?有这个为什么还要 GetXmlHttpObject() 呢?还有 staffauto.php 有时做什么的? |
|
|
|
|
|
|
| |
本周最热论坛帖子
|