0

Hi,
It is my 1st attempt with Ajax and I'm facing some problems. Below parts of my code. First part is working ok. But then I need to get option id attribute instead of value. And it is not working. Could you help me and check it? Thx

index.php form

<select name="client_name" id="client_data" onchange="ajaxFunction5()">
	<option value="".$partner_name."">".$partner_name."</option>
</select>

ajax_select_box.js

function ajaxFunction5(){
 var ajaxRequest;  // magic variable
 
  try{
    // Opera 8.0+, Firefox, Safari
    ajaxRequest = new XMLHttpRequest();
  } catch (e){
    // Internet Explorer Browsers
    try{
      ajaxRequest = new ActiveXObject("Msxml2.XMLHTTP");
    } catch (e) {
     
      try{
        ajaxRequest = new ActiveXObject("Microsoft.XMLHTTP");
      } catch (e){
        // Something went wrong
        alert("Your browser broke!");
        return false;
      }
    }
  }
 
  // Receive Data Function
  ajaxRequest.onreadystatechange = function(){
   
    if(ajaxRequest.readyState == 4){
      var ajaxDisplay = document.getElementById('ajaxDiv5');
      ajaxDisplay.innerHTML = ajaxRequest.responseText;
    }
   
  }
  
  var client_data = document.getElementById('client_data').value;
 
  var queryString = "?client_data=" + client_data;
  ajaxRequest.open("GET", "contact_data.php" + queryString, true);
  ajaxRequest.send(null);
}

contact_data.php

$client_data = $_GET['client_data'];
<select name="contact_name" id="contact_data"onchange="ajaxFunction4()">
	
// ======================== Here goes mysql_query 
$wynik2 = mysql_query("SELECT partner_id, partner_name, contact_name FROM $sql_tabela WHERE partner_name LIKE '".$client_data."'");				
		
        while ($row = mysql_fetch_array($wynik2)) {
          $partner_id = intval($row['partner_id']);
		  $contact_name = $row['contact_name'];
		  
	<option id="$partner_id" value="$contact_name"> $contact_name </option>
}
</select>

ajax_select[...]

function ajaxFunction4(){
[...]// ======================== Here the problem starts

[B]var contact = document.getElementById('contact_data');
  var contact_data = contact.options[contact.selectedIndex].id;
 
  var queryString = "?contact_data=" + contact_data;
  ajaxRequest.open("GET", "client_data.php" + queryString, true);
  ajaxRequest.send(null);[/B]
}

client_data.php

$contact_data = $_GET['contact_data'];
// ======================== Here goes 2nd mysql_query

$wynik2 = mysql_query("SELECT partner_id, partner_name, partner_address, partner_post, partner_city, contact_name, contact_phone, 
					contact_email FROM $sql_tabela WHERE partner_id='".$contact_data."'");
2
Contributors
3
Replies
4
Views
6 Years
Discussion Span
Last Post by weles
0

Why would you add the 'id' property to 'option' tag? Would it be OK to use the value as '$partner_id' instead of '$contact_name'? If you want contact_name, you could use select.options[select.selectedIndex].innerHTML to get the contact_name instead. It is redundant... What if you remove the 'id' property and use 'value' property to store $partner_id instead, is it still a problem???

Edited by Taywin: n/a

0

I need both. Code is part of online offering form. contact_name is stored in d-base (and send in the offer to the client). partner_id is to select right contact from chosen company. If I do like you propose I will have number instead of name-I use those vars in other parts of the code. I would like to avoid too deep reconstruction of it. I thought it could be good occasion to try ajax but I have failed. Is there any way to get option id? Maybe you can suggest other way to do it?

0

ok. it is working now. there was no mistake. it's just started. probably one of those mysteries...

This topic has been dead for over six months. Start a new discussion instead.
Have something to contribute to this discussion? Please be thoughtful, detailed and courteous, and be sure to adhere to our posting rules.