Diferència entre revisions de la pàgina «Exercici 4»
De wikiserver
(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...».) |
(→Programa de client exercici4.html amb objecte XMLHtmlRequest) |
||
Línia 74: | Línia 74: | ||
</html> | </html> | ||
+ | |||
+ | </source> | ||
+ | |||
+ | == Programa de client '''exercici4.html''' amb FETCH == | ||
+ | |||
+ | <source lang=javascript> | ||
+ | <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 src="https://unpkg.com/axios/dist/axios.min.js"></script> | ||
+ | <script lang="javascript"> | ||
+ | |||
+ | var ciutat=document.getElementById("ciutat"); | ||
+ | var barri=document.getElementById("barri"); | ||
+ | ciutat.onchange=function () { | ||
+ | |||
+ | fetch("exercici4.php?q="+ciutat.value) | ||
+ | .then( function(response){ | ||
+ | if(response.ok) { | ||
+ | return response.text() | ||
+ | } else { | ||
+ | throw "Error a la crida Ajax"; | ||
+ | } | ||
+ | }) | ||
+ | .then(function(responseText){ | ||
+ | barri.innerHTML=""; | ||
+ | var arr_barris=(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); | ||
+ | } | ||
+ | }) | ||
+ | .catch(function(err) { | ||
+ | console.log(err); | ||
+ | }); | ||
+ | |||
+ | }; | ||
+ | |||
+ | </script> | ||
+ | |||
+ | </body> | ||
+ | |||
+ | </source> | ||
+ | |||
+ | == Programa de client '''exercici4.html''' amb AXIOS == | ||
+ | |||
+ | <source lang=javascript> | ||
+ | <html> | ||
+ | <body> | ||
+ | <h1>exercici 4 AJAX</h1> | ||
+ | |||
+ | <label>Escull una ciutat:</label> | ||
+ | |||
+ | <select name="ciutat" id="ciutat" onchange="canvi_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 src="https://unpkg.com/axios/dist/axios.min.js"></script> | ||
+ | <script lang="javascript"> | ||
+ | |||
+ | var ciutat=document.getElementById("ciutat"); | ||
+ | var barri=document.getElementById("barri"); | ||
+ | ciutat.onchange=canvi_ciutat; | ||
+ | |||
+ | function canvi_ciutat() { | ||
+ | |||
+ | axios.get("exercici4.php?q="+ciutat.value) | ||
+ | .then(function(response){ | ||
+ | barri.innerHTML=""; | ||
+ | var arr_barris=(response.data).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); | ||
+ | } | ||
+ | }) | ||
+ | .catch(function(err) { | ||
+ | console.log(err); | ||
+ | }); | ||
+ | |||
+ | } | ||
+ | |||
+ | </script> | ||
+ | |||
+ | </body> | ||
</source> | </source> |
Revisió del 11:22, 7 abr 2022
Contingut
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>
Programa de client exercici4.html amb FETCH
<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 src="https://unpkg.com/axios/dist/axios.min.js"></script>
<script lang="javascript">
var ciutat=document.getElementById("ciutat");
var barri=document.getElementById("barri");
ciutat.onchange=function () {
fetch("exercici4.php?q="+ciutat.value)
.then( function(response){
if(response.ok) {
return response.text()
} else {
throw "Error a la crida Ajax";
}
})
.then(function(responseText){
barri.innerHTML="";
var arr_barris=(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);
}
})
.catch(function(err) {
console.log(err);
});
};
</script>
</body>
Programa de client exercici4.html amb AXIOS
<html>
<body>
<h1>exercici 4 AJAX</h1>
<label>Escull una ciutat:</label>
<select name="ciutat" id="ciutat" onchange="canvi_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 src="https://unpkg.com/axios/dist/axios.min.js"></script>
<script lang="javascript">
var ciutat=document.getElementById("ciutat");
var barri=document.getElementById("barri");
ciutat.onchange=canvi_ciutat;
function canvi_ciutat() {
axios.get("exercici4.php?q="+ciutat.value)
.then(function(response){
barri.innerHTML="";
var arr_barris=(response.data).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);
}
})
.catch(function(err) {
console.log(err);
});
}
</script>
</body>