Exercici 4

De wikiserver
La revisió el 11:31, 7 abr 2022 per Jcomas (Discussió | contribucions) (Es crea la pàgina amb «== Programa de servidor '''exercici4.php''' == <source lang=php> <?php $barri = array("barcelona"=>array("Ciutat Vella", "Eixample", "Sants-Montuïc","Les Corts","Gr...».)
(dif) ← Versió més antiga | Versió actual (dif) | Versió més nova → (dif)
Dreceres ràpides: navegació, cerca

Programa de servidor exercici4.php

<?php

$barri = array("barcelona"=>array("Ciutat Vella", "Eixample", "Sants-Montuïc","Les Corts","Gràcia"),
                "madrid"=>array("Centro","Arganzuela","Retiro","Salamanca","Chamartín","Tetuán"),
                "sevilla" => array("Casco antiguo","Nervión","Sur","Triana","Norte"),
                "lacoruna" => array("Agra del Orzán","Ensanche","Monte Alto","Pescadería")
                );

$q = $_REQUEST["q"];

echo "---------,".implode(",",$barri[$q]);

?>

Programa de client exercici4.html amb objecte XMLHtmlRequest

<html>
<body>
<h1>exercici 4 AJAX</h1>

<label>Escull una ciutat:</label>

<select name="ciutat" id="ciutat">
  <option value="-">---------</option>
  <option value="barcelona">Barcelona</option>
  <option value="lacoruna">La Coruña</option>
  <option value="madrid">Madrid</option>
  <option value="sevilla">Sevilla</option>
</select>
<br><br>
<label>Escull un barri:</label>
<select name="barri" id="barri">
  <option value="-">---------</option>    
</select>
  

<script lang="javascript">

var ciutat=document.getElementById("ciutat");
var barri=document.getElementById("barri");

var xhr=new XMLHttpRequest();
ciutat.onchange=function () {
  xhr.open("GET","exercici4.php?q="+ciutat.value);
  xhr.send(null); 
};

xhr.onreadystatechange=function (){
    
    barri.innerHTML="";

    if(xhr.readyState==4 && xhr.status==200) {
       var arr_barris=(xhr.responseText).split(",");
      
      for(var _barri of arr_barris) {
        var opt=document.createElement("option");
        var opt_text=document.createTextNode(_barri);
        opt.appendChild(opt_text);
        barri.appendChild(opt);
      }
    }
};



</script>

</body>
</html>