<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://docs.sandbox.joomla.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Amama</id>
	<title>Joomla! Documentation - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://docs.sandbox.joomla.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Amama"/>
	<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/Special:Contributions/Amama"/>
	<updated>2026-09-10T03:21:25Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.43.0</generator>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=J1.5:Adding_AJAX_to_your_component&amp;diff=14216</id>
		<title>J1.5:Adding AJAX to your component</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=J1.5:Adding_AJAX_to_your_component&amp;diff=14216"/>
		<updated>2009-05-21T07:00:42Z</updated>

		<summary type="html">&lt;p&gt;Amama: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;To add ajax to your component:&lt;br /&gt;
&lt;br /&gt;
== Phase 1 ==&lt;br /&gt;
1- Make the necessary javascript ajax functionality in your default.php (or other template in components/com_xxx/views/yyy/tmpl/)&lt;br /&gt;
&lt;br /&gt;
  ex. &lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;script language=&#039;javascript&#039;&amp;gt;   &lt;br /&gt;
&lt;br /&gt;
function ajxGetCitys(country_id){&lt;br /&gt;
      &lt;br /&gt;
    var xhr = getXhr();&lt;br /&gt;
    // On défini ce qu&#039;on va faire quand on aura la réponse&lt;br /&gt;
    xhr.onreadystatechange = function(){&lt;br /&gt;
      // On ne fait quelque chose que si on a tout reçu et que le serveur est ok&lt;br /&gt;
     &lt;br /&gt;
      if(xhr.readyState == 4 &amp;amp;&amp;amp; xhr.status == 200){&lt;br /&gt;
          var city=document.getElementById(&#039;city&#039;);&lt;br /&gt;
          &lt;br /&gt;
          try //Internet Explorer&lt;br /&gt;
          {&lt;br /&gt;
            xmlDoc=new ActiveXObject(&amp;quot;Microsoft.XMLDOM&amp;quot;);&lt;br /&gt;
            xmlDoc.async=&amp;quot;false&amp;quot;;&lt;br /&gt;
            xmlDoc.loadXML(xhr.responseText);&lt;br /&gt;
          }&lt;br /&gt;
        catch(e)&lt;br /&gt;
          {&lt;br /&gt;
          try //Firefox, Mozilla, Opera, etc.&lt;br /&gt;
            {&lt;br /&gt;
              parser=new DOMParser();&lt;br /&gt;
              xmlDoc=parser.parseFromString(xhr.responseText,&amp;quot;text/xml&amp;quot;);&lt;br /&gt;
            }&lt;br /&gt;
          catch(e) {alert(e.message)}&lt;br /&gt;
          }&lt;br /&gt;
        &lt;br /&gt;
          var options =xmlDoc.getElementsByTagName(&#039;options&#039;).item(0);&lt;br /&gt;
          city.innerHTML=&#039;&#039;;&lt;br /&gt;
        &lt;br /&gt;
          for (i=0; i &amp;lt; options.childNodes.length; i++){          &lt;br /&gt;
            var newoption=document.createElement(&amp;quot;option&amp;quot;);&lt;br /&gt;
            var myoption=options.childNodes[i];&lt;br /&gt;
            var newtext=document.createTextNode(myoption.childNodes[0].nodeValue);&lt;br /&gt;
            newoption.setAttribute(&amp;quot;value&amp;quot;,myoption.getAttributeNode(&#039;id&#039;).value)&lt;br /&gt;
            newoption.appendChild(newtext);&lt;br /&gt;
            city.appendChild(newoption);&lt;br /&gt;
           &lt;br /&gt;
          }&lt;br /&gt;
        &lt;br /&gt;
            &lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
      xhr.open(&amp;quot;GET&amp;quot;,&amp;quot;index2.php?option=com_user&amp;amp;task=listcity&amp;amp;country_id=&amp;quot;+country_id,true);&lt;br /&gt;
      xhr.send(null);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/script&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Phase 2 ==&lt;br /&gt;
2- in the controller.php add new function (or task)like listcity ,see the following example:&lt;br /&gt;
&lt;br /&gt;
example:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
function listcity()&lt;br /&gt;
  { &lt;br /&gt;
  &lt;br /&gt;
     global $mainframe;&lt;br /&gt;
     $country_id=JRequest::getVar( &#039;country_id&#039;);&lt;br /&gt;
     $model = $this-&amp;gt;getModel(&#039;register&#039;);&lt;br /&gt;
     $states = $model-&amp;gt;getStates($country_id);&lt;br /&gt;
     &lt;br /&gt;
     $return = &amp;quot;&amp;lt;?xml version=\&amp;quot;1.0\&amp;quot; encoding=\&amp;quot;utf8\&amp;quot; ?&amp;gt;&amp;quot;;&lt;br /&gt;
     $return .= &amp;quot;&amp;lt;options&amp;gt;&amp;quot;;&lt;br /&gt;
     $return .= &amp;quot;&amp;lt;option id=&#039;0&#039;&amp;gt;&amp;quot;.JText::_( &#039;---Select city---&#039; ).&amp;quot;&amp;lt;/option&amp;gt;&amp;quot;;&lt;br /&gt;
     if(is_array($states)) {&lt;br /&gt;
        foreach ($states as $state) {&lt;br /&gt;
         	$return .=&amp;quot;&amp;lt;option id=&#039;&amp;quot;.$state-&amp;gt;state_id.&amp;quot;&#039;&amp;gt;&amp;quot;.JText::_($state-&amp;gt;state_name).&amp;quot;&amp;lt;/option&amp;gt;&amp;quot;;&lt;br /&gt;
        }&lt;br /&gt;
      }&lt;br /&gt;
      $return .= &amp;quot;&amp;lt;/options&amp;gt;&amp;quot;;&lt;br /&gt;
      echo $return;      &lt;br /&gt;
      $mainframe-&amp;gt;close();&lt;br /&gt;
   &lt;br /&gt;
  }&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3- Here  i have a method getStates($country_id) in the register model to extract the list countries from my bdd ,you can  do  it another way and adapt  to your needs  .Good luck&lt;/div&gt;</summary>
		<author><name>Amama</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=J1.5:Adding_AJAX_to_your_component&amp;diff=10049</id>
		<title>J1.5:Adding AJAX to your component</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=J1.5:Adding_AJAX_to_your_component&amp;diff=10049"/>
		<updated>2008-08-08T08:21:13Z</updated>

		<summary type="html">&lt;p&gt;Amama: /* Phase 1 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;To add ajax to your component:&lt;br /&gt;
&lt;br /&gt;
== Phase 1 ==&lt;br /&gt;
1- Make the necessary javascript ajax functionality in your default.php (or other template in components/com_xxx/views/yyy/tmpl/)&lt;br /&gt;
&lt;br /&gt;
  ex. &lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;script language=&#039;javascript&#039;&amp;gt;   &lt;br /&gt;
&lt;br /&gt;
function ajxGetCitys(country_id){&lt;br /&gt;
      &lt;br /&gt;
    var xhr = getXhr();&lt;br /&gt;
    // On défini ce qu&#039;on va faire quand on aura la réponse&lt;br /&gt;
    xhr.onreadystatechange = function(){&lt;br /&gt;
      // On ne fait quelque chose que si on a tout reçu et que le serveur est ok&lt;br /&gt;
     &lt;br /&gt;
      if(xhr.readyState == 4 &amp;amp;&amp;amp; xhr.status == 200){&lt;br /&gt;
          var city=document.getElementById(&#039;city&#039;);&lt;br /&gt;
          &lt;br /&gt;
          try //Internet Explorer&lt;br /&gt;
          {&lt;br /&gt;
            xmlDoc=new ActiveXObject(&amp;quot;Microsoft.XMLDOM&amp;quot;);&lt;br /&gt;
            xmlDoc.async=&amp;quot;false&amp;quot;;&lt;br /&gt;
            xmlDoc.loadXML(xhr.responseText);&lt;br /&gt;
          }&lt;br /&gt;
        catch(e)&lt;br /&gt;
          {&lt;br /&gt;
          try //Firefox, Mozilla, Opera, etc.&lt;br /&gt;
            {&lt;br /&gt;
              parser=new DOMParser();&lt;br /&gt;
              xmlDoc=parser.parseFromString(xhr.responseText,&amp;quot;text/xml&amp;quot;);&lt;br /&gt;
            }&lt;br /&gt;
          catch(e) {alert(e.message)}&lt;br /&gt;
          }&lt;br /&gt;
        &lt;br /&gt;
          var options =xmlDoc.getElementsByTagName(&#039;options&#039;).item(0);&lt;br /&gt;
          city.innerHTML=&#039;&#039;;&lt;br /&gt;
        &lt;br /&gt;
          for (i=0; i &amp;lt; options.childNodes.length; i++){          &lt;br /&gt;
            var newoption=document.createElement(&amp;quot;option&amp;quot;);&lt;br /&gt;
            var myoption=options.childNodes[i];&lt;br /&gt;
            var newtext=document.createTextNode(myoption.childNodes[0].nodeValue);&lt;br /&gt;
            newoption.setAttribute(&amp;quot;value&amp;quot;,myoption.getAttributeNode(&#039;id&#039;).value)&lt;br /&gt;
            newoption.appendChild(newtext);&lt;br /&gt;
            city.appendChild(newoption);&lt;br /&gt;
           &lt;br /&gt;
          }&lt;br /&gt;
        &lt;br /&gt;
            &lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
      xhr.open(&amp;quot;GET&amp;quot;,&amp;quot;index2.php?option=com_user&amp;amp;task=listcity&amp;amp;country_id=&amp;quot;+country_id,true);&lt;br /&gt;
      xhr.send(null);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/script&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Phase 2 ==&lt;br /&gt;
2- in the controller.php add new function (or task)like listcity in the above example:&lt;br /&gt;
&lt;br /&gt;
example:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
function listcity()&lt;br /&gt;
  { &lt;br /&gt;
  &lt;br /&gt;
     global $mainframe;&lt;br /&gt;
     $country_id=JRequest::getVar( &#039;country_id&#039;);&lt;br /&gt;
     $model = $this-&amp;gt;getModel(&#039;register&#039;);&lt;br /&gt;
     $states = $model-&amp;gt;getStates($country_id);&lt;br /&gt;
     &lt;br /&gt;
     $return = &amp;quot;&amp;lt;?xml version=\&amp;quot;1.0\&amp;quot; encoding=\&amp;quot;utf8\&amp;quot; ?&amp;gt;&amp;quot;;&lt;br /&gt;
     $return .= &amp;quot;&amp;lt;options&amp;gt;&amp;quot;;&lt;br /&gt;
     $return .= &amp;quot;&amp;lt;option id=&#039;0&#039;&amp;gt;&amp;quot;.JText::_( &#039;---Select city---&#039; ).&amp;quot;&amp;lt;/option&amp;gt;&amp;quot;;&lt;br /&gt;
     if(is_array($states)) {&lt;br /&gt;
        foreach ($states as $state) {&lt;br /&gt;
         	$return .=&amp;quot;&amp;lt;option id=&#039;&amp;quot;.$state-&amp;gt;state_id.&amp;quot;&#039;&amp;gt;&amp;quot;.JText::_($state-&amp;gt;state_name).&amp;quot;&amp;lt;/option&amp;gt;&amp;quot;;&lt;br /&gt;
        }&lt;br /&gt;
      }&lt;br /&gt;
      $return .= &amp;quot;&amp;lt;/options&amp;gt;&amp;quot;;&lt;br /&gt;
      echo $return;      &lt;br /&gt;
      $mainframe-&amp;gt;close();&lt;br /&gt;
   &lt;br /&gt;
  }&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3- Here  i have a methode getStates($country_id) in the register model to extract the list countries from my bdd ,you can  do  it another way and adapt  to your needs  .Good luck&lt;/div&gt;</summary>
		<author><name>Amama</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=J1.5:Adding_AJAX_to_your_component&amp;diff=9653</id>
		<title>J1.5:Adding AJAX to your component</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=J1.5:Adding_AJAX_to_your_component&amp;diff=9653"/>
		<updated>2008-07-30T14:16:33Z</updated>

		<summary type="html">&lt;p&gt;Amama: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;To add ajax to your component:&lt;br /&gt;
&lt;br /&gt;
== Phase 1 ==&lt;br /&gt;
1- Make the necessary javascript ajax functionality in your default.php (or other layout)&lt;br /&gt;
&lt;br /&gt;
  ex. &lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;script language=&#039;javascript&#039;&amp;gt;   &lt;br /&gt;
&lt;br /&gt;
function ajxGetCitys(country_id){&lt;br /&gt;
      &lt;br /&gt;
    var xhr = getXhr();&lt;br /&gt;
    // On défini ce qu&#039;on va faire quand on aura la réponse&lt;br /&gt;
    xhr.onreadystatechange = function(){&lt;br /&gt;
      // On ne fait quelque chose que si on a tout reçu et que le serveur est ok&lt;br /&gt;
     &lt;br /&gt;
      if(xhr.readyState == 4 &amp;amp;&amp;amp; xhr.status == 200){&lt;br /&gt;
          var city=document.getElementById(&#039;city&#039;);&lt;br /&gt;
          &lt;br /&gt;
          try //Internet Explorer&lt;br /&gt;
          {&lt;br /&gt;
            xmlDoc=new ActiveXObject(&amp;quot;Microsoft.XMLDOM&amp;quot;);&lt;br /&gt;
            xmlDoc.async=&amp;quot;false&amp;quot;;&lt;br /&gt;
            xmlDoc.loadXML(xhr.responseText);&lt;br /&gt;
          }&lt;br /&gt;
        catch(e)&lt;br /&gt;
          {&lt;br /&gt;
          try //Firefox, Mozilla, Opera, etc.&lt;br /&gt;
            {&lt;br /&gt;
              parser=new DOMParser();&lt;br /&gt;
              xmlDoc=parser.parseFromString(xhr.responseText,&amp;quot;text/xml&amp;quot;);&lt;br /&gt;
            }&lt;br /&gt;
          catch(e) {alert(e.message)}&lt;br /&gt;
          }&lt;br /&gt;
        &lt;br /&gt;
          var options =xmlDoc.getElementsByTagName(&#039;options&#039;).item(0);&lt;br /&gt;
          city.innerHTML=&#039;&#039;;&lt;br /&gt;
        &lt;br /&gt;
          for (i=0; i &amp;lt; options.childNodes.length; i++){          &lt;br /&gt;
            var newoption=document.createElement(&amp;quot;option&amp;quot;);&lt;br /&gt;
            var myoption=options.childNodes[i];&lt;br /&gt;
            var newtext=document.createTextNode(myoption.childNodes[0].nodeValue);&lt;br /&gt;
            newoption.setAttribute(&amp;quot;value&amp;quot;,myoption.getAttributeNode(&#039;id&#039;).value)&lt;br /&gt;
            newoption.appendChild(newtext);&lt;br /&gt;
            city.appendChild(newoption);&lt;br /&gt;
           &lt;br /&gt;
          }&lt;br /&gt;
        &lt;br /&gt;
            &lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
      xhr.open(&amp;quot;GET&amp;quot;,&amp;quot;index2.php?option=com_user&amp;amp;task=listcity&amp;amp;country_id=&amp;quot;+country_id,true);&lt;br /&gt;
      xhr.send(null);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/script&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Phase 2 ==&lt;br /&gt;
2- in the controller.php add new function (or task)like listcity in the above example:&lt;br /&gt;
&lt;br /&gt;
example:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
function listcity()&lt;br /&gt;
  { &lt;br /&gt;
  &lt;br /&gt;
     global $mainframe;&lt;br /&gt;
     $country_id=JRequest::getVar( &#039;country_id&#039;);&lt;br /&gt;
     $model = $this-&amp;gt;getModel(&#039;register&#039;);&lt;br /&gt;
     $states = $model-&amp;gt;getStates($country_id);&lt;br /&gt;
     &lt;br /&gt;
     $return = &amp;quot;&amp;lt;?xml version=\&amp;quot;1.0\&amp;quot; encoding=\&amp;quot;utf8\&amp;quot; ?&amp;gt;&amp;quot;;&lt;br /&gt;
     $return .= &amp;quot;&amp;lt;options&amp;gt;&amp;quot;;&lt;br /&gt;
     $return .= &amp;quot;&amp;lt;option id=&#039;0&#039;&amp;gt;&amp;quot;.JText::_( &#039;---Select city---&#039; ).&amp;quot;&amp;lt;/option&amp;gt;&amp;quot;;&lt;br /&gt;
     if(is_array($states)) {&lt;br /&gt;
        foreach ($states as $state) {&lt;br /&gt;
         	$return .=&amp;quot;&amp;lt;option id=&#039;&amp;quot;.$state-&amp;gt;state_id.&amp;quot;&#039;&amp;gt;&amp;quot;.JText::_($state-&amp;gt;state_name).&amp;quot;&amp;lt;/option&amp;gt;&amp;quot;;&lt;br /&gt;
        }&lt;br /&gt;
      }&lt;br /&gt;
      $return .= &amp;quot;&amp;lt;/options&amp;gt;&amp;quot;;&lt;br /&gt;
      echo $return;      &lt;br /&gt;
      $mainframe-&amp;gt;close();&lt;br /&gt;
   &lt;br /&gt;
  }&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3- Here  i have a methode getStates($country_id) in the register model to extract the list countries from my bdd ,you can  do  it another way and adapt  to your needs  .Good luck&lt;/div&gt;</summary>
		<author><name>Amama</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=J1.5:Adding_AJAX_to_your_component&amp;diff=9652</id>
		<title>J1.5:Adding AJAX to your component</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=J1.5:Adding_AJAX_to_your_component&amp;diff=9652"/>
		<updated>2008-07-30T14:14:45Z</updated>

		<summary type="html">&lt;p&gt;Amama: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;To add ajax to your component:&lt;br /&gt;
&lt;br /&gt;
== Phase 1 ==&lt;br /&gt;
1- Make the necessary javascript ajax functionality in your default.php (or other layout)&lt;br /&gt;
&lt;br /&gt;
  ex. &lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;script language=&#039;javascript&#039;&amp;gt;   &lt;br /&gt;
&lt;br /&gt;
function ajxGetCitys(country_id){&lt;br /&gt;
      &lt;br /&gt;
    var xhr = getXhr();&lt;br /&gt;
    // On défini ce qu&#039;on va faire quand on aura la réponse&lt;br /&gt;
    xhr.onreadystatechange = function(){&lt;br /&gt;
      // On ne fait quelque chose que si on a tout reçu et que le serveur est ok&lt;br /&gt;
     &lt;br /&gt;
      if(xhr.readyState == 4 &amp;amp;&amp;amp; xhr.status == 200){&lt;br /&gt;
          var city=document.getElementById(&#039;city&#039;);&lt;br /&gt;
          &lt;br /&gt;
          try //Internet Explorer&lt;br /&gt;
          {&lt;br /&gt;
            xmlDoc=new ActiveXObject(&amp;quot;Microsoft.XMLDOM&amp;quot;);&lt;br /&gt;
            xmlDoc.async=&amp;quot;false&amp;quot;;&lt;br /&gt;
            xmlDoc.loadXML(xhr.responseText);&lt;br /&gt;
          }&lt;br /&gt;
        catch(e)&lt;br /&gt;
          {&lt;br /&gt;
          try //Firefox, Mozilla, Opera, etc.&lt;br /&gt;
            {&lt;br /&gt;
              parser=new DOMParser();&lt;br /&gt;
              xmlDoc=parser.parseFromString(xhr.responseText,&amp;quot;text/xml&amp;quot;);&lt;br /&gt;
            }&lt;br /&gt;
          catch(e) {alert(e.message)}&lt;br /&gt;
          }&lt;br /&gt;
        &lt;br /&gt;
          var options =xmlDoc.getElementsByTagName(&#039;options&#039;).item(0);&lt;br /&gt;
          city.innerHTML=&#039;&#039;;&lt;br /&gt;
        &lt;br /&gt;
          for (i=0; i &amp;lt; options.childNodes.length; i++){          &lt;br /&gt;
            var newoption=document.createElement(&amp;quot;option&amp;quot;);&lt;br /&gt;
            var myoption=options.childNodes[i];&lt;br /&gt;
            var newtext=document.createTextNode(myoption.childNodes[0].nodeValue);&lt;br /&gt;
            newoption.setAttribute(&amp;quot;value&amp;quot;,myoption.getAttributeNode(&#039;id&#039;).value)&lt;br /&gt;
            newoption.appendChild(newtext);&lt;br /&gt;
            city.appendChild(newoption);&lt;br /&gt;
           &lt;br /&gt;
          }&lt;br /&gt;
        &lt;br /&gt;
            &lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
      xhr.open(&amp;quot;GET&amp;quot;,&amp;quot;index2.php?option=com_user&amp;amp;task=listcity&amp;amp;country_id=&amp;quot;+country_id,true);&lt;br /&gt;
      xhr.send(null);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/script&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Phase 2 ==&lt;br /&gt;
2- in the controller.php add new function (or task)like listcity in the above example:&lt;br /&gt;
&lt;br /&gt;
example:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
function listcity()&lt;br /&gt;
  { &lt;br /&gt;
  &lt;br /&gt;
     global $mainframe;&lt;br /&gt;
     $country_id=JRequest::getVar( &#039;country_id&#039;);&lt;br /&gt;
     $model = $this-&amp;gt;getModel(&#039;register&#039;);&lt;br /&gt;
     $states = $model-&amp;gt;getStates($country_id);&lt;br /&gt;
     &lt;br /&gt;
     $return = &amp;quot;&amp;lt;?xml version=\&amp;quot;1.0\&amp;quot; encoding=\&amp;quot;utf8\&amp;quot; ?&amp;gt;&amp;quot;;&lt;br /&gt;
     $return .= &amp;quot;&amp;lt;options&amp;gt;&amp;quot;;&lt;br /&gt;
     $return .= &amp;quot;&amp;lt;option id=&#039;0&#039;&amp;gt;&amp;quot;.JText::_( &#039;---Select city---&#039; ).&amp;quot;&amp;lt;/option&amp;gt;&amp;quot;;&lt;br /&gt;
     if(is_array($states)) {&lt;br /&gt;
        foreach ($states as $state) {&lt;br /&gt;
         	$return .=&amp;quot;&amp;lt;option id=&#039;&amp;quot;.$state-&amp;gt;state_id.&amp;quot;&#039;&amp;gt;&amp;quot;.JText::_($state-&amp;gt;state_name).&amp;quot;&amp;lt;/option&amp;gt;&amp;quot;;&lt;br /&gt;
        }&lt;br /&gt;
      }&lt;br /&gt;
      $return .= &amp;quot;&amp;lt;/options&amp;gt;&amp;quot;;&lt;br /&gt;
      echo $return;      &lt;br /&gt;
      $mainframe-&amp;gt;close();&lt;br /&gt;
   &lt;br /&gt;
  }&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3- Here  i have a methode getStates($country_id) in the register model to extract the list countries from my bdd ,you can  adapt it to your needs  .Good luck&lt;/div&gt;</summary>
		<author><name>Amama</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=J1.5:Adding_AJAX_to_your_component&amp;diff=9651</id>
		<title>J1.5:Adding AJAX to your component</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=J1.5:Adding_AJAX_to_your_component&amp;diff=9651"/>
		<updated>2008-07-30T14:11:34Z</updated>

		<summary type="html">&lt;p&gt;Amama: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;To add ajax to your component:&lt;br /&gt;
&lt;br /&gt;
== Phase 1 ==&lt;br /&gt;
1- Make the necessary javascript ajax functionality in your default.php (or other layout)&lt;br /&gt;
&lt;br /&gt;
  ex. &lt;br /&gt;
&amp;lt;source lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
function ajxGetCitys(country_id){&lt;br /&gt;
      &lt;br /&gt;
    var xhr = getXhr();&lt;br /&gt;
    // On défini ce qu&#039;on va faire quand on aura la réponse&lt;br /&gt;
    xhr.onreadystatechange = function(){&lt;br /&gt;
      // On ne fait quelque chose que si on a tout reçu et que le serveur est ok&lt;br /&gt;
     &lt;br /&gt;
      if(xhr.readyState == 4 &amp;amp;&amp;amp; xhr.status == 200){&lt;br /&gt;
          var city=document.getElementById(&#039;city&#039;);&lt;br /&gt;
          &lt;br /&gt;
          try //Internet Explorer&lt;br /&gt;
          {&lt;br /&gt;
            xmlDoc=new ActiveXObject(&amp;quot;Microsoft.XMLDOM&amp;quot;);&lt;br /&gt;
            xmlDoc.async=&amp;quot;false&amp;quot;;&lt;br /&gt;
            xmlDoc.loadXML(xhr.responseText);&lt;br /&gt;
          }&lt;br /&gt;
        catch(e)&lt;br /&gt;
          {&lt;br /&gt;
          try //Firefox, Mozilla, Opera, etc.&lt;br /&gt;
            {&lt;br /&gt;
              parser=new DOMParser();&lt;br /&gt;
              xmlDoc=parser.parseFromString(xhr.responseText,&amp;quot;text/xml&amp;quot;);&lt;br /&gt;
            }&lt;br /&gt;
          catch(e) {alert(e.message)}&lt;br /&gt;
          }&lt;br /&gt;
        &lt;br /&gt;
          var options =xmlDoc.getElementsByTagName(&#039;options&#039;).item(0);&lt;br /&gt;
          city.innerHTML=&#039;&#039;;&lt;br /&gt;
        &lt;br /&gt;
          for (i=0; i &amp;lt; options.childNodes.length; i++){          &lt;br /&gt;
            var newoption=document.createElement(&amp;quot;option&amp;quot;);&lt;br /&gt;
            var myoption=options.childNodes[i];&lt;br /&gt;
            var newtext=document.createTextNode(myoption.childNodes[0].nodeValue);&lt;br /&gt;
            newoption.setAttribute(&amp;quot;value&amp;quot;,myoption.getAttributeNode(&#039;id&#039;).value)&lt;br /&gt;
            newoption.appendChild(newtext);&lt;br /&gt;
            city.appendChild(newoption);&lt;br /&gt;
          &lt;br /&gt;
           // alert( myoption.getAttributeNode(&#039;id&#039;).value+ &amp;quot; &amp;quot; + myoption.childNodes[0].nodeValue);&lt;br /&gt;
           &lt;br /&gt;
          }&lt;br /&gt;
        &lt;br /&gt;
            &lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
      xhr.open(&amp;quot;GET&amp;quot;,&amp;quot;index2.php?option=com_user&amp;amp;task=listcity&amp;amp;country_id=&amp;quot;+country_id,true);&lt;br /&gt;
      xhr.send(null);&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Phase 2 ==&lt;br /&gt;
2- in the controller.php add new function (or task)like listcity in the above example:&lt;br /&gt;
&lt;br /&gt;
example:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
function listcity()&lt;br /&gt;
  { &lt;br /&gt;
  &lt;br /&gt;
     global $mainframe;&lt;br /&gt;
     $country_id=JRequest::getVar( &#039;country_id&#039;);&lt;br /&gt;
     $model = $this-&amp;gt;getModel(&#039;register&#039;);&lt;br /&gt;
     $states = $model-&amp;gt;getStates($country_id);&lt;br /&gt;
     &lt;br /&gt;
     $return = &amp;quot;&amp;lt;?xml version=\&amp;quot;1.0\&amp;quot; encoding=\&amp;quot;utf8\&amp;quot; ?&amp;gt;&amp;quot;;&lt;br /&gt;
     $return .= &amp;quot;&amp;lt;options&amp;gt;&amp;quot;;&lt;br /&gt;
     $return .= &amp;quot;&amp;lt;option id=&#039;0&#039;&amp;gt;&amp;quot;.JText::_( &#039;---Select city---&#039; ).&amp;quot;&amp;lt;/option&amp;gt;&amp;quot;;&lt;br /&gt;
     if(is_array($states)) {&lt;br /&gt;
        foreach ($states as $state) {&lt;br /&gt;
         	$return .=&amp;quot;&amp;lt;option id=&#039;&amp;quot;.$state-&amp;gt;state_id.&amp;quot;&#039;&amp;gt;&amp;quot;.JText::_($state-&amp;gt;state_name).&amp;quot;&amp;lt;/option&amp;gt;&amp;quot;;&lt;br /&gt;
        }&lt;br /&gt;
      }&lt;br /&gt;
      $return .= &amp;quot;&amp;lt;/options&amp;gt;&amp;quot;;&lt;br /&gt;
      echo $return;      &lt;br /&gt;
      $mainframe-&amp;gt;close();&lt;br /&gt;
   &lt;br /&gt;
  }&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3- Here  i have a methode getStates($country_id) in the register model to extract the list countries from my bdd ,you can  adapt it to your needs  .Good luck&lt;/div&gt;</summary>
		<author><name>Amama</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=J1.5:Adding_AJAX_to_your_component&amp;diff=9650</id>
		<title>J1.5:Adding AJAX to your component</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=J1.5:Adding_AJAX_to_your_component&amp;diff=9650"/>
		<updated>2008-07-30T13:50:59Z</updated>

		<summary type="html">&lt;p&gt;Amama: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;To add ajax to your component:&lt;br /&gt;
&lt;br /&gt;
1- Make the necessary javascript ajax functionality in your default.php (or other layout)&lt;br /&gt;
&lt;br /&gt;
  ex. &lt;br /&gt;
&lt;br /&gt;
    &amp;lt;script&amp;gt;&lt;br /&gt;
function ajxGetCitys(country_id){&lt;br /&gt;
      &lt;br /&gt;
    var xhr = getXhr();&lt;br /&gt;
    // On défini ce qu&#039;on va faire quand on aura la réponse&lt;br /&gt;
    xhr.onreadystatechange = function(){&lt;br /&gt;
      // On ne fait quelque chose que si on a tout reçu et que le serveur est ok&lt;br /&gt;
     &lt;br /&gt;
      if(xhr.readyState == 4 &amp;amp;&amp;amp; xhr.status == 200){&lt;br /&gt;
          var city=document.getElementById(&#039;city&#039;);&lt;br /&gt;
          &lt;br /&gt;
          try //Internet Explorer&lt;br /&gt;
          {&lt;br /&gt;
            xmlDoc=new ActiveXObject(&amp;quot;Microsoft.XMLDOM&amp;quot;);&lt;br /&gt;
            xmlDoc.async=&amp;quot;false&amp;quot;;&lt;br /&gt;
            xmlDoc.loadXML(xhr.responseText);&lt;br /&gt;
          }&lt;br /&gt;
        catch(e)&lt;br /&gt;
          {&lt;br /&gt;
          try //Firefox, Mozilla, Opera, etc.&lt;br /&gt;
            {&lt;br /&gt;
              parser=new DOMParser();&lt;br /&gt;
              xmlDoc=parser.parseFromString(xhr.responseText,&amp;quot;text/xml&amp;quot;);&lt;br /&gt;
            }&lt;br /&gt;
          catch(e) {alert(e.message)}&lt;br /&gt;
          }&lt;br /&gt;
        &lt;br /&gt;
          var options =xmlDoc.getElementsByTagName(&#039;options&#039;).item(0);&lt;br /&gt;
          city.innerHTML=&#039;&#039;;&lt;br /&gt;
        &lt;br /&gt;
          for (i=0; i &amp;lt; options.childNodes.length; i++){          &lt;br /&gt;
            var newoption=document.createElement(&amp;quot;option&amp;quot;);&lt;br /&gt;
            var myoption=options.childNodes[i];&lt;br /&gt;
            var newtext=document.createTextNode(myoption.childNodes[0].nodeValue);&lt;br /&gt;
            newoption.setAttribute(&amp;quot;value&amp;quot;,myoption.getAttributeNode(&#039;id&#039;).value)&lt;br /&gt;
            newoption.appendChild(newtext);&lt;br /&gt;
            city.appendChild(newoption);&lt;br /&gt;
          &lt;br /&gt;
           // alert( myoption.getAttributeNode(&#039;id&#039;).value+ &amp;quot; &amp;quot; + myoption.childNodes[0].nodeValue);&lt;br /&gt;
           &lt;br /&gt;
          }&lt;br /&gt;
        &lt;br /&gt;
            &lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
      xhr.open(&amp;quot;GET&amp;quot;,&amp;quot;index2.php?option=com_user&amp;amp;task=listcity&amp;amp;country_id=&amp;quot;+country_id,true);&lt;br /&gt;
      xhr.send(null);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/script&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
2- in the controller.php add new function (or task)like listcity in the above example:&lt;br /&gt;
&lt;br /&gt;
example:&lt;br /&gt;
&lt;br /&gt;
function listcity()&lt;br /&gt;
  { &lt;br /&gt;
  &lt;br /&gt;
     global $mainframe;&lt;br /&gt;
     $country_id=JRequest::getVar( &#039;country_id&#039;);&lt;br /&gt;
     $model = $this-&amp;gt;getModel(&#039;register&#039;);&lt;br /&gt;
     $states = $model-&amp;gt;getStates($country_id);&lt;br /&gt;
     &lt;br /&gt;
     $return = &amp;quot;&amp;lt;?xml version=\&amp;quot;1.0\&amp;quot; encoding=\&amp;quot;utf8\&amp;quot; ?&amp;gt;&amp;quot;;&lt;br /&gt;
     $return .= &amp;quot;&amp;lt;options&amp;gt;&amp;quot;;&lt;br /&gt;
     $return .= &amp;quot;&amp;lt;option id=&#039;0&#039;&amp;gt;&amp;quot;.JText::_( &#039;---Select city---&#039; ).&amp;quot;&amp;lt;/option&amp;gt;&amp;quot;;&lt;br /&gt;
     if(is_array($states)) {&lt;br /&gt;
        foreach ($states as $state) {&lt;br /&gt;
         	$return .=&amp;quot;&amp;lt;option id=&#039;&amp;quot;.$state-&amp;gt;state_id.&amp;quot;&#039;&amp;gt;&amp;quot;.JText::_($state-&amp;gt;state_name).&amp;quot;&amp;lt;/option&amp;gt;&amp;quot;;&lt;br /&gt;
        }&lt;br /&gt;
      }&lt;br /&gt;
      $return .= &amp;quot;&amp;lt;/options&amp;gt;&amp;quot;;&lt;br /&gt;
      echo $return;      &lt;br /&gt;
      $mainframe-&amp;gt;close();&lt;br /&gt;
   &lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
3- Here  i have a methode getStates($country_id) in the register model to extract the list countries from my bdd ,you can  adapt to your needs and test .Good luck&lt;/div&gt;</summary>
		<author><name>Amama</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=J1.5:Adding_AJAX_to_your_component&amp;diff=9649</id>
		<title>J1.5:Adding AJAX to your component</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=J1.5:Adding_AJAX_to_your_component&amp;diff=9649"/>
		<updated>2008-07-30T13:48:59Z</updated>

		<summary type="html">&lt;p&gt;Amama: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;To add ajax to your component:&lt;br /&gt;
&lt;br /&gt;
1- Make the necessary javascript ajax functionality in your default.php (or other layout)&lt;br /&gt;
&lt;br /&gt;
  ex. &lt;br /&gt;
    &amp;lt;script&amp;gt;&lt;br /&gt;
function ajxGetCitys(country_id){&lt;br /&gt;
      &lt;br /&gt;
    var xhr = getXhr();&lt;br /&gt;
    // On défini ce qu&#039;on va faire quand on aura la réponse&lt;br /&gt;
    xhr.onreadystatechange = function(){&lt;br /&gt;
      // On ne fait quelque chose que si on a tout reçu et que le serveur est ok&lt;br /&gt;
     &lt;br /&gt;
      if(xhr.readyState == 4 &amp;amp;&amp;amp; xhr.status == 200){&lt;br /&gt;
          var city=document.getElementById(&#039;city&#039;);&lt;br /&gt;
          &lt;br /&gt;
          try //Internet Explorer&lt;br /&gt;
          {&lt;br /&gt;
            xmlDoc=new ActiveXObject(&amp;quot;Microsoft.XMLDOM&amp;quot;);&lt;br /&gt;
            xmlDoc.async=&amp;quot;false&amp;quot;;&lt;br /&gt;
            xmlDoc.loadXML(xhr.responseText);&lt;br /&gt;
          }&lt;br /&gt;
        catch(e)&lt;br /&gt;
          {&lt;br /&gt;
          try //Firefox, Mozilla, Opera, etc.&lt;br /&gt;
            {&lt;br /&gt;
              parser=new DOMParser();&lt;br /&gt;
              xmlDoc=parser.parseFromString(xhr.responseText,&amp;quot;text/xml&amp;quot;);&lt;br /&gt;
            }&lt;br /&gt;
          catch(e) {alert(e.message)}&lt;br /&gt;
          }&lt;br /&gt;
        &lt;br /&gt;
          var options =xmlDoc.getElementsByTagName(&#039;options&#039;).item(0);&lt;br /&gt;
          city.innerHTML=&#039;&#039;;&lt;br /&gt;
        &lt;br /&gt;
          for (i=0; i &amp;lt; options.childNodes.length; i++){          &lt;br /&gt;
            var newoption=document.createElement(&amp;quot;option&amp;quot;);&lt;br /&gt;
            var myoption=options.childNodes[i];&lt;br /&gt;
            var newtext=document.createTextNode(myoption.childNodes[0].nodeValue);&lt;br /&gt;
            newoption.setAttribute(&amp;quot;value&amp;quot;,myoption.getAttributeNode(&#039;id&#039;).value)&lt;br /&gt;
            newoption.appendChild(newtext);&lt;br /&gt;
            city.appendChild(newoption);&lt;br /&gt;
          &lt;br /&gt;
           // alert( myoption.getAttributeNode(&#039;id&#039;).value+ &amp;quot; &amp;quot; + myoption.childNodes[0].nodeValue);&lt;br /&gt;
           &lt;br /&gt;
          }&lt;br /&gt;
        &lt;br /&gt;
            &lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
      xhr.open(&amp;quot;GET&amp;quot;,&amp;quot;index2.php?option=com_user&amp;amp;task=listcity&amp;amp;country_id=&amp;quot;+country_id,true);&lt;br /&gt;
      xhr.send(null);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/script&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
2- in the controller.php add new function (or task)like listcity in the above example:&lt;br /&gt;
&lt;br /&gt;
example:&lt;br /&gt;
&lt;br /&gt;
function listcity()&lt;br /&gt;
  { &lt;br /&gt;
  &lt;br /&gt;
     global $mainframe;&lt;br /&gt;
     $country_id=JRequest::getVar( &#039;country_id&#039;);&lt;br /&gt;
     $model = $this-&amp;gt;getModel(&#039;register&#039;);&lt;br /&gt;
     $states = $model-&amp;gt;getStates($country_id);&lt;br /&gt;
     &lt;br /&gt;
     $return = &amp;quot;&amp;lt;?xml version=\&amp;quot;1.0\&amp;quot; encoding=\&amp;quot;utf8\&amp;quot; ?&amp;gt;&amp;quot;;&lt;br /&gt;
     $return .= &amp;quot;&amp;lt;options&amp;gt;&amp;quot;;&lt;br /&gt;
     $return .= &amp;quot;&amp;lt;option id=&#039;0&#039;&amp;gt;&amp;quot;.JText::_( &#039;---Select city---&#039; ).&amp;quot;&amp;lt;/option&amp;gt;&amp;quot;;&lt;br /&gt;
     if(is_array($states)) {&lt;br /&gt;
        foreach ($states as $state) {&lt;br /&gt;
         	$return .=&amp;quot;&amp;lt;option id=&#039;&amp;quot;.$state-&amp;gt;state_id.&amp;quot;&#039;&amp;gt;&amp;quot;.JText::_($state-&amp;gt;state_name).&amp;quot;&amp;lt;/option&amp;gt;&amp;quot;;&lt;br /&gt;
        }&lt;br /&gt;
      }&lt;br /&gt;
      $return .= &amp;quot;&amp;lt;/options&amp;gt;&amp;quot;;&lt;br /&gt;
      echo $return;      &lt;br /&gt;
      $mainframe-&amp;gt;close();&lt;br /&gt;
   &lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
3- Here  i have a methode getStates($country_id) to extract the list countries ,you can  adapt to your needs and test .Good luck&lt;/div&gt;</summary>
		<author><name>Amama</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=J1.5:Adding_AJAX_to_your_component&amp;diff=9648</id>
		<title>J1.5:Adding AJAX to your component</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=J1.5:Adding_AJAX_to_your_component&amp;diff=9648"/>
		<updated>2008-07-30T13:44:38Z</updated>

		<summary type="html">&lt;p&gt;Amama: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
To add ajax to your component:&lt;br /&gt;
&lt;br /&gt;
1- Make the necessary javascript ajax functionality in your default.php (or other layout)&lt;br /&gt;
&lt;br /&gt;
  ex. &lt;br /&gt;
    &amp;lt;script&amp;gt;&lt;br /&gt;
function ajxGetCitys(country_id){&lt;br /&gt;
      &lt;br /&gt;
    var xhr = getXhr();&lt;br /&gt;
    // On défini ce qu&#039;on va faire quand on aura la réponse&lt;br /&gt;
    xhr.onreadystatechange = function(){&lt;br /&gt;
      // On ne fait quelque chose que si on a tout reçu et que le serveur est ok&lt;br /&gt;
     &lt;br /&gt;
      if(xhr.readyState == 4 &amp;amp;&amp;amp; xhr.status == 200){&lt;br /&gt;
          var city=document.getElementById(&#039;city&#039;);&lt;br /&gt;
          &lt;br /&gt;
          try //Internet Explorer&lt;br /&gt;
          {&lt;br /&gt;
            xmlDoc=new ActiveXObject(&amp;quot;Microsoft.XMLDOM&amp;quot;);&lt;br /&gt;
            xmlDoc.async=&amp;quot;false&amp;quot;;&lt;br /&gt;
            xmlDoc.loadXML(xhr.responseText);&lt;br /&gt;
          }&lt;br /&gt;
        catch(e)&lt;br /&gt;
          {&lt;br /&gt;
          try //Firefox, Mozilla, Opera, etc.&lt;br /&gt;
            {&lt;br /&gt;
              parser=new DOMParser();&lt;br /&gt;
              xmlDoc=parser.parseFromString(xhr.responseText,&amp;quot;text/xml&amp;quot;);&lt;br /&gt;
            }&lt;br /&gt;
          catch(e) {alert(e.message)}&lt;br /&gt;
          }&lt;br /&gt;
        &lt;br /&gt;
          var options =xmlDoc.getElementsByTagName(&#039;options&#039;).item(0);&lt;br /&gt;
          city.innerHTML=&#039;&#039;;&lt;br /&gt;
        &lt;br /&gt;
          for (i=0; i &amp;lt; options.childNodes.length; i++){          &lt;br /&gt;
            var newoption=document.createElement(&amp;quot;option&amp;quot;);&lt;br /&gt;
            var myoption=options.childNodes[i];&lt;br /&gt;
            var newtext=document.createTextNode(myoption.childNodes[0].nodeValue);&lt;br /&gt;
            newoption.setAttribute(&amp;quot;value&amp;quot;,myoption.getAttributeNode(&#039;id&#039;).value)&lt;br /&gt;
            newoption.appendChild(newtext);&lt;br /&gt;
            city.appendChild(newoption);&lt;br /&gt;
          &lt;br /&gt;
           // alert( myoption.getAttributeNode(&#039;id&#039;).value+ &amp;quot; &amp;quot; + myoption.childNodes[0].nodeValue);&lt;br /&gt;
           &lt;br /&gt;
          }&lt;br /&gt;
        &lt;br /&gt;
            &lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
      xhr.open(&amp;quot;GET&amp;quot;,&amp;quot;index2.php?option=com_user&amp;amp;task=listcity&amp;amp;country_id=&amp;quot;+country_id,true);&lt;br /&gt;
      xhr.send(null);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/script&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
2- in the controller.php add new function (or task)like listcity in the above example:&lt;br /&gt;
&lt;br /&gt;
example:&lt;br /&gt;
&lt;br /&gt;
function listcity()&lt;br /&gt;
  { &lt;br /&gt;
  &lt;br /&gt;
     global $mainframe;&lt;br /&gt;
     $country_id=JRequest::getVar( &#039;country_id&#039;);&lt;br /&gt;
     $model = $this-&amp;gt;getModel(&#039;register&#039;);&lt;br /&gt;
     $states = $model-&amp;gt;getStates($country_id);&lt;br /&gt;
     &lt;br /&gt;
     $return = &amp;quot;&amp;lt;?xml version=\&amp;quot;1.0\&amp;quot; encoding=\&amp;quot;utf8\&amp;quot; ?&amp;gt;&amp;quot;;&lt;br /&gt;
     $return .= &amp;quot;&amp;lt;options&amp;gt;&amp;quot;;&lt;br /&gt;
     $return .= &amp;quot;&amp;lt;option id=&#039;0&#039;&amp;gt;&amp;quot;.JText::_( &#039;---Select city---&#039; ).&amp;quot;&amp;lt;/option&amp;gt;&amp;quot;;&lt;br /&gt;
     if(is_array($states)) {&lt;br /&gt;
        foreach ($states as $state) {&lt;br /&gt;
         	$return .=&amp;quot;&amp;lt;option id=&#039;&amp;quot;.$state-&amp;gt;state_id.&amp;quot;&#039;&amp;gt;&amp;quot;.JText::_($state-&amp;gt;state_name).&amp;quot;&amp;lt;/option&amp;gt;&amp;quot;;&lt;br /&gt;
        }&lt;br /&gt;
      }&lt;br /&gt;
      $return .= &amp;quot;&amp;lt;/options&amp;gt;&amp;quot;;&lt;br /&gt;
      echo $return;      &lt;br /&gt;
      $mainframe-&amp;gt;close();&lt;br /&gt;
   &lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
3- adapt to your needs and test .Good luck&lt;/div&gt;</summary>
		<author><name>Amama</name></author>
	</entry>
</feed>