<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ca">
	<id>http://wiki.joanillo.org/index.php?action=history&amp;feed=atom&amp;title=Ajax._PHP_i_BD</id>
	<title>Ajax. PHP i BD - Historial de revisió</title>
	<link rel="self" type="application/atom+xml" href="http://wiki.joanillo.org/index.php?action=history&amp;feed=atom&amp;title=Ajax._PHP_i_BD"/>
	<link rel="alternate" type="text/html" href="http://wiki.joanillo.org/index.php?title=Ajax._PHP_i_BD&amp;action=history"/>
	<updated>2026-08-30T10:21:48Z</updated>
	<subtitle>Historial de revisió per a aquesta pàgina del wiki</subtitle>
	<generator>MediaWiki 1.34.2</generator>
	<entry>
		<id>http://wiki.joanillo.org/index.php?title=Ajax._PHP_i_BD&amp;diff=258164&amp;oldid=prev</id>
		<title>Joan: /* Exemple vist a classe II */</title>
		<link rel="alternate" type="text/html" href="http://wiki.joanillo.org/index.php?title=Ajax._PHP_i_BD&amp;diff=258164&amp;oldid=prev"/>
		<updated>2019-01-30T15:33:01Z</updated>

		<summary type="html">&lt;p&gt;&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;Exemple vist a classe II&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Pàgina nova&lt;/b&gt;&lt;/p&gt;&lt;div&gt;=Introducció=&lt;br /&gt;
'''AJAX = Asynchronous JavaScript and XML'''&lt;br /&gt;
&lt;br /&gt;
AJAX no és un llenguatge de programació, sinó una manera diferent d'utilitzar estàndars existents. AJAX és l'art d'intercanviar dades amb el servidor (el servidor web), i actualitzar parts d'una pàgina web sense haver de carregar de nou tota la pàgina web.&lt;br /&gt;
&lt;br /&gt;
'''Asynchronous JavaScript + XML''', no és una tecnologia en ella mateixa, sinó que és una ''nova'' apoximació per utilitzar de forma conjunta una sèrie de tecnologies que existien prèviament, com ara HTML o XHTML, Cascading Style Sheets, JavaScript, The Document Object Model, XML, XSLT, i el més important, l'objecte XMLHttpRequest.&lt;br /&gt;
&lt;br /&gt;
Quan aquestes tecnologies es combinen en el model AJAX, les pàgines web poden fer actualitzacions incrementals i ràpides en el navegador sense haver de carregar de nou la pàgina. Això fa que l'aplicació sigui més ràpida a les accions dels usuaris i més usable.&lt;br /&gt;
&lt;br /&gt;
Encara que la '''X''' de ''AJAX'' ve de ''XML'', avui en dia s'utilitza més '''JSON''' en comptes de '''XML''' degut als seus múltiples avantatges com ara tenir un pes inferior i estar integrat dins de Javascript. Tant JSON com XML s'utilitzen per empaquetar informació en el model AJAX.&lt;br /&gt;
&lt;br /&gt;
=Referències=&lt;br /&gt;
*http://www.w3schools.com/ajax/default.ASP&lt;br /&gt;
*https://developer.mozilla.org/en-US/docs/AJAX&lt;br /&gt;
*https://developer.mozilla.org/en-US/docs/AJAX/Getting_Started&lt;br /&gt;
*http://www.xul.fr/en-xml-ajax.html&lt;br /&gt;
===AJAX PHP===&lt;br /&gt;
*http://www.w3schools.com/ajax/ajax_aspphp.asp&lt;br /&gt;
===AJAX database===&lt;br /&gt;
*http://www.w3schools.com/ajax/ajax_database.asp&lt;br /&gt;
===AJAX XML===&lt;br /&gt;
*http://www.w3schools.com/ajax/ajax_xmlfile.asp&lt;br /&gt;
Compte! amb aquest exercici. L'exercici no funciona en local (file:///), sinó que necessitem el Apache igual que en els exercicis basats en PHP. Quan parlem de ''comunicació asíncrona amb el servidor'', el servidor és el nostre servidor Apache.&lt;br /&gt;
&lt;br /&gt;
D'altra banda, quan descarreguem el fitxer ''cd_catalog.xml'' de Internet, hem de vigilar els permisos que queden en el fitxer. A Linux existeix l'usuari ''www-data'', i és aquest usuari el que ha de tenir permisos suficients per llegir aquest fitxer.&lt;br /&gt;
&lt;br /&gt;
=Aclaracions=&lt;br /&gt;
==Exemple vist a classe==&lt;br /&gt;
'''showhint.htm''':&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;!DOCTYPE html&amp;gt;&lt;br /&gt;
&amp;lt;html&amp;gt;&lt;br /&gt;
&amp;lt;head&amp;gt;&lt;br /&gt;
&amp;lt;script&amp;gt;&lt;br /&gt;
function showHint(str)&lt;br /&gt;
{&lt;br /&gt;
var xmlhttp;&lt;br /&gt;
if (str.length==0)&lt;br /&gt;
  { &lt;br /&gt;
  document.getElementById(&amp;quot;txtHint&amp;quot;).innerHTML=&amp;quot;&amp;quot;;&lt;br /&gt;
  return;&lt;br /&gt;
  }&lt;br /&gt;
if (window.XMLHttpRequest)&lt;br /&gt;
  {// code for IE7+, Firefox, Chrome, Opera, Safari&lt;br /&gt;
  xmlhttp=new XMLHttpRequest();&lt;br /&gt;
  }&lt;br /&gt;
else&lt;br /&gt;
  {// code for IE6, IE5&lt;br /&gt;
  xmlhttp=new ActiveXObject(&amp;quot;Microsoft.XMLHTTP&amp;quot;);&lt;br /&gt;
  }&lt;br /&gt;
xmlhttp.onreadystatechange=function()&lt;br /&gt;
  {&lt;br /&gt;
  if (xmlhttp.readyState==4 &amp;amp;&amp;amp; xmlhttp.status==200)&lt;br /&gt;
    {&lt;br /&gt;
		//alert(xmlhttp.responseText);&lt;br /&gt;
    	//document.getElementById(&amp;quot;txtHint&amp;quot;).innerHTML=xmlhttp.responseText;&lt;br /&gt;
		var chunk = xmlhttp.responseText.split(&amp;quot;*&amp;quot;);&lt;br /&gt;
		txt = &amp;quot;&amp;lt;ul&amp;gt;&amp;quot;;&lt;br /&gt;
		for (i in chunk) {&lt;br /&gt;
			txt += &amp;quot;&amp;lt;li&amp;gt;&amp;quot;+chunk[i]+&amp;quot;&amp;lt;/li&amp;gt;&amp;quot;;&lt;br /&gt;
		}&lt;br /&gt;
		txt += &amp;quot;&amp;lt;/ul&amp;gt;&amp;quot;;&lt;br /&gt;
		setTimeout(function(){document.getElementById(&amp;quot;txtHint&amp;quot;).innerHTML= txt;},3000);&lt;br /&gt;
&lt;br /&gt;
    } else {&lt;br /&gt;
		document.getElementById(&amp;quot;txtHint&amp;quot;).innerHTML=&amp;quot;&amp;lt;img src='img/ajax-loader.gif' /&amp;gt;&amp;quot;;&lt;br /&gt;
	}&lt;br /&gt;
  }&lt;br /&gt;
xmlhttp.open(&amp;quot;GET&amp;quot;,&amp;quot;php/gethint.php?q=&amp;quot;+str,true);&lt;br /&gt;
xmlhttp.send();&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;lt;/head&amp;gt;&lt;br /&gt;
&amp;lt;body&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h3&amp;gt;Start typing a name in the input field below:&amp;lt;/h3&amp;gt;&lt;br /&gt;
&amp;lt;form action=&amp;quot;&amp;quot;&amp;gt; &lt;br /&gt;
First name: &amp;lt;input type=&amp;quot;text&amp;quot; id=&amp;quot;txt1&amp;quot; onkeyup=&amp;quot;showHint(this.value)&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/form&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Suggestions: &amp;lt;span id=&amp;quot;txtHint&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/p&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;/body&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
'''gethint.php''':&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
// Fill up array with names&lt;br /&gt;
$a[]=&amp;quot;Anna&amp;quot;;&lt;br /&gt;
$a[]=&amp;quot;Brittany&amp;quot;;&lt;br /&gt;
$a[]=&amp;quot;Cinderella&amp;quot;;&lt;br /&gt;
$a[]=&amp;quot;Diana&amp;quot;;&lt;br /&gt;
$a[]=&amp;quot;Eva&amp;quot;;&lt;br /&gt;
$a[]=&amp;quot;Fiona&amp;quot;;&lt;br /&gt;
$a[]=&amp;quot;Gunda&amp;quot;;&lt;br /&gt;
$a[]=&amp;quot;Hege&amp;quot;;&lt;br /&gt;
$a[]=&amp;quot;Inga&amp;quot;;&lt;br /&gt;
$a[]=&amp;quot;Johanna&amp;quot;;&lt;br /&gt;
$a[]=&amp;quot;Kitty&amp;quot;;&lt;br /&gt;
$a[]=&amp;quot;Linda&amp;quot;;&lt;br /&gt;
$a[]=&amp;quot;Nina&amp;quot;;&lt;br /&gt;
$a[]=&amp;quot;Ophelia&amp;quot;;&lt;br /&gt;
$a[]=&amp;quot;Petunia&amp;quot;;&lt;br /&gt;
$a[]=&amp;quot;Amanda&amp;quot;;&lt;br /&gt;
$a[]=&amp;quot;Raquel&amp;quot;;&lt;br /&gt;
$a[]=&amp;quot;Cindy&amp;quot;;&lt;br /&gt;
$a[]=&amp;quot;Doris&amp;quot;;&lt;br /&gt;
$a[]=&amp;quot;Eve&amp;quot;;&lt;br /&gt;
$a[]=&amp;quot;Evita&amp;quot;;&lt;br /&gt;
$a[]=&amp;quot;Sunniva&amp;quot;;&lt;br /&gt;
$a[]=&amp;quot;Tove&amp;quot;;&lt;br /&gt;
$a[]=&amp;quot;Unni&amp;quot;;&lt;br /&gt;
$a[]=&amp;quot;Violet&amp;quot;;&lt;br /&gt;
$a[]=&amp;quot;Liza&amp;quot;;&lt;br /&gt;
$a[]=&amp;quot;Elizabeth&amp;quot;;&lt;br /&gt;
$a[]=&amp;quot;Ellen&amp;quot;;&lt;br /&gt;
$a[]=&amp;quot;Wenche&amp;quot;;&lt;br /&gt;
$a[]=&amp;quot;Vicky&amp;quot;;&lt;br /&gt;
$a[]=&amp;quot;Maria&amp;quot;;&lt;br /&gt;
$a[]=&amp;quot;Pere&amp;quot;;&lt;br /&gt;
$a[]=&amp;quot;Rita&amp;quot;;&lt;br /&gt;
$a[]=&amp;quot;Jordi&amp;quot;;&lt;br /&gt;
$a[]=&amp;quot;Anna&amp;quot;;&lt;br /&gt;
$a[]=&amp;quot;Núria&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
// get the q parameter from URL&lt;br /&gt;
$q=$_REQUEST[&amp;quot;q&amp;quot;]; $hint=&amp;quot;&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
// lookup all hints from array if $q is different from &amp;quot;&amp;quot;&lt;br /&gt;
if ($q !== &amp;quot;&amp;quot;)&lt;br /&gt;
  { $q=strtolower($q); $len=strlen($q);&lt;br /&gt;
    foreach($a as $name)&lt;br /&gt;
    { if (stristr($q, substr($name,0,$len)))&lt;br /&gt;
      { if ($hint===&amp;quot;&amp;quot;)&lt;br /&gt;
        { $hint=$name; }&lt;br /&gt;
        else&lt;br /&gt;
        { $hint .= &amp;quot;*$name&amp;quot;; }&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
// Output &amp;quot;no suggestion&amp;quot; if no hint were found&lt;br /&gt;
// or output the correct values&lt;br /&gt;
echo $hint===&amp;quot;&amp;quot; ? &amp;quot;no suggestion&amp;quot; : $hint;&lt;br /&gt;
?&amp;gt; &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
La imatge animada de AJAX l'hem generat de:&lt;br /&gt;
*http://www.ajaxload.info/&lt;br /&gt;
==Exemple vist a classe II. Entrega de classe (30-01-2019)==&lt;br /&gt;
*http://www.w3schools.com/php/php_ajax_database.asp&lt;br /&gt;
Per tal de què funcioni aquest exemple, has de crear la taula ''user'' en una base de dades del teu mysql, amb la mateixa estructura que et proposen:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
create table user (&lt;br /&gt;
id smallint primary key,&lt;br /&gt;
FirstName varchar(50) not null,&lt;br /&gt;
LastName varchar(50) not null,&lt;br /&gt;
Age smallint,&lt;br /&gt;
Hometown varchar(50) not null,&lt;br /&gt;
Job varchar(50) not null&lt;br /&gt;
);&lt;br /&gt;
&lt;br /&gt;
insert into user values (1, 'Peter', 'Griffin', 41, 'Quahog', 'Brewery');&lt;br /&gt;
insert into user values (2, 'Lois', 'Griffin', 40, 'Newport', 'Piano Teacher');&lt;br /&gt;
insert into user values (3, 'Joseph', 'Swanson', 39, 'Quahog', 'Police Officer');&lt;br /&gt;
insert into user values (4, 'Glenn', 'Quagmire', 41, 'Quahog', 'Pilot');&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Autor}}, febrer 2019&lt;br /&gt;
[[Categoria: Institut Jaume Balmes]]&lt;br /&gt;
[[Categoria: Assignatura DAW-M06-WEC]]&lt;/div&gt;</summary>
		<author><name>Joan</name></author>
		
	</entry>
</feed>