0

ユーザーが従業員 ID を入力する自動入力機能を備えたフォームを作成しようとしています。名前、役職、ステータスなどのフィールドは、httpのテーブルの機能と同様に、従業員 ID フィールドを離れるときに入力されます。 ://www.crackajax.net/popform.php# . データは後で別のデータベースに送信され、他のユーザーが入力した情報を追跡します。ただし、ファイルをアセンブルすると、onchange 機能が動作しないようです。フォームは次のとおりです。

フォーム自体:

<!DOCTYPE html>

<html lang="en">

<head>
    <title></title>
    <script type="text/javascript" src="scripts.js"></script>
    <script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
    <meta charset="utf-8" />

</head>

<body>

    <form id="entry" name="entry" method="post">


            <label for="employeeid" class="stdlabel">Employee ID:</label>
                <input type="text" id="employeeID" name="employeeID" onchange="geteedata()">
        <br>
            <label for="employeename" class="stdlabel">Employee Name:</label>
                <input id ="employeename" type="text" name="employeename">
        <br>
            <label for="employeestatus "class="stdlabel">Status:</label>
                <input type="text" name="employeestatus" >
        <br>
            <label for="employeetitle"class="stdlabel">Job Title:</label>
                <input type="text" name="employeetitle" >
        <br>
            <label for="loccode" class="stdlabel">Employee Loc Code:</label>
                <input type="text" name="loccode" >

    <input type="submit" name ="submit" value="Submit" style="margin-right:10px">
  </form>

 <?php
      if(isset($_POST['submit'])){

        $con = mysql_connect("localhost", "root", "xxx");
        if(!$con) {
            die("Cannot connect to database:" . mysql_error()); 
        }

        mysql_select_db("mydb", $con);

        $sql = "INSERT INTO casetracker (emplid,empname,empjobtitle,status, loccode) VALUES ('$_POST[employeeid]','$_POST[employeename]','$_POST[employeetitle]','$_POST[employeestatus]','$_POST[loccode]')";

        mysql_query($sql,$con) or die(mysql_error());
        mysql_close($con);

    ?>                
</body>

</html>

以下はJavaScriptファイルです。

function geteedata() {
var url = "search.inc.php?param=";
var idValue = document.getElementById("employeeID").value;
var myRandom = parseInt(Math.random() * 99999999);  // cache buster
http.open("GET", url + escape(idValue) + "&rand=" + myRandom, true);
http.onreadystatechange = handleHttpResponse;
http.send(null);
}

function handleHttpResponse() {
if (http.readyState == 4) {
results = http.responseText.split(",");
document.getElementById('employeename').value = results[0];
document.getElementById('employeestatus').value = results[1];
document.getElementById('employeetitle').value = results[2];
document.getElementById('loccode').value = results[3];
}
   }  

そして、ここに search.inc.php があります:

if(strlen($param)>0){
$result = mysql_query("SELECT * FROM employee_data WHERE Pernr ='$param'");
if(mysql_num_rows($result)==1) {
while($myrow = mysql_fetch_array($result)){
   $employeename = $myrow["Last_First"];
   $employeestatus = $myrow["Emp_Status"];
   $employeetitle = $myrow["Position_Text"];
   $loccode = $myrow["loccode"];
   $textout .= $employeename.",".$employeestatus.",".$employeetitle.",".$loccode;
}
} else {
$textout=" , , ,".$param;
}
}
echo $textout;

私が忘れていること、見逃していること、または間違っていることについて誰か考えていますか?

前もって感謝します!

4

1 に答える 1

0

リクエストを送信する前に XMLHttpRequest オブジェクトのインスタンスを作成していないようです。

次のことを試してください。

function geteedata() {
var url = "search.inc.php?param=";
var idValue = document.getElementById("employeeID").value;
var myRandom = parseInt(Math.random() * 99999999);  // cache buster

var http = new XMLHttpRequest();
http.open("GET", url + escape(idValue) + "&rand=" + myRandom, true);
http.onreadystatechange = handleHttpResponse;
http.send(null);
}

詳細については、MDN Using XMLHttpRequestをご覧ください。

于 2014-04-25T20:07:12.897 に答える