Results 1 to 2 of 2

Thread: Ajax undefined issue

  1. #1
    Join Date
    Jul 2008
    Posts
    2
    Thanks
    0
    Thanked 0 Times in 0 Posts

    Default Ajax undefined issue

    I am just learning AJAX and created a simple page that is just a form and when you enter a User ID the other text fields will populate based on an onblur event. Everything works fine except if nothing is entered an you click on another field everything populates with 'undefined' except the first field (result[0] under http.responseText.split

    If anyone could tell me how to NOT return anything if you click on another field if there is no data returned instead of 'undefined' I would greatly appreciate the help.

    Thanks

    Here is the javascript code:
    Code:
    var url = "getUserInfo.php?param="; 
    
    function handleHttpResponse() {
    
      if (http.readyState == 4) {
    
        // Split the comma delimited response into an array
        
        
        results = http.responseText.split(",");
    
        document.getElementById('first').value = results[0];
    
        document.getElementById('last').value = results[1];
        
        document.getElementById('empId').value = results[2];
        
        document.getElementById('driver_id').value = results[3];
        
        document.getElementById('contact_id').value = results[4];
        
        document.getElementById('company_id').value = results[5];
        
        document.getElementById('company_name').value = results[6];
        
        document.getElementById('group_id').value = results[7];
        
        document.getElementById('group_name').value = results[8];
    
    	document.getElementById('user').value = results[9];
    	
      }
    
    }
    
    
    function updateUser() {
    var userValue = document.getElementById("user").value; 
    http.open("GET", url + escape(userValue), true); 
    http.onreadystatechange = handleHttpResponse; http.send(null);
    
     }
    
    function getHTTPObject() {
      var xmlhttp;
      /*@cc_on
      @if (@_jscript_version >= 5)
        try {
          xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
        } catch (e) {
          try {
            xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
          } catch (E) {
            xmlhttp = false;
          }
        }
      @else
      xmlhttp = false;
      @end @*/
      if (!xmlhttp && typeof XMLHttpRequest != 'undefined') {
        try {
          xmlhttp = new XMLHttpRequest();
        } catch (e) {
          xmlhttp = false;
        }
      }
      return xmlhttp;
    }
    
    
    var http = getHTTPObject();
    Here is the html:
    Code:
    <form name="form1" action="post" >
    
      <table>
    		<tr>
      			<td>User ID:</td>
    			<td><input type="text" size="10" name="user" id="user" onblur="updateUser();" /></td>
    		</tr>
      		<tr>
      			<td>First Name:</td>
    			<td><input type="text" name="first" id="first" /></td>
    			<td>Last Name:</td>
    			<td><input type="text" name="last" id="last" /></td>
    		</tr>
    		<tr>
      			<td>Employee ID:</td>
    			<td><input type="text" name="empId" id="empId" /></td>
    		</tr>
    		<tr>
    			<td>Driver ID:</td>
    			<td><input type="text" name="driver_id" id="driver_id" /></td>
    		</tr>
    		<tr>
    			<td>Contact ID:</td>
    			<td><input type="text" name="contact_id" id="contact_id" /></td>
    		</tr>
    		<tr>
    			<td>Company ID:</td>
    			<td><input type="text" name="company_id" id="company_id" /></td>
    	
    			<td>Company Name:</td>
    			<td><input type="text" name="company_name" id="company_name" /></td>
    		</tr>
    		<tr>
    			<td>Group ID:</td>
    			<td><input type="text" name="group_id" id="group_id" /></td>
    			
    			<td>Group Name:</td>
    			<td><input type="text" name="group_name" id="group_name" /></td>
    		</tr>
    	</table>
    </form>
    Here is the php:
    Code:
    <?php
    $username = $_GET['param'];
    
    $query = "SELECT first_name, last_name,
    		  client_employee_id, driver_id,
    		  contact_id, company_id, driver_group_id, co.name as company_name, dg.name as group_name, username
    		  from contacts
    		  JOIN users using (contact_id)
    		  JOIN drivers using (contact_id)
    		  JOIN driver_groups dg using (driver_group_id)
    		  JOIN companies co using (company_id)
    		  WHERE username = $username";
    
    $getInfo = $oDb->getArrayOfArrays("$query");
    
    foreach($getInfo as $info)
    {
      $information = $info['first_name']. ',' . $info['last_name'] . ',' .
                  $info['client_employee_id'] . ',' . $info['driver_id'] . ',' .
                  $info['contact_id'] . ',' . $info['company_id'] . ',' . $info['company_name'] . ',' .
                  $info['driver_group_id'] . ',' . $info['group_name'] . ',' . $info['username'];
                  
        if (count($getInfo > 0))
          echo $information;
    }
    ?>

  2. #2
    Join Date
    Jul 2008
    Posts
    2
    Thanks
    0
    Thanked 0 Times in 0 Posts

    Default

    Nevermind. I answered my own question.

    I added the following conditional to display the results

    Code:
    if (document.getElementById('user').value != '') {

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •