C ' AJAX

maïwene Messages postés 26 Statut Membre -  
Alain_42 Messages postés 5413 Statut Membre -
Bonjour,

je voudrais savoir la ou les grandes différences entre Ajax et Java? lequel est le plus simple (lorsqu'on débute)?
en ce moment, j'étais sur XHTML et CSS (c'est pas du la m chose!) , et je voulais voir les bases du C ou C++; mais quelqu'un a dit qu'il valais mieux utiliser Ajax. Est-ce que c'est vrai? parce que j'entends parler que du C et C++ ou encore du Java. Il dit qu'il y a plus d'avantages...mais ça a l'air vachement plus compliqué!!!

Merci D'avance!
Configuration: Windows XP
Firefox 1.0.4
Internet Explorer 6.0

9 réponses

  1. ben1852 Messages postés 35 Statut Membre
     
    le langage C est un langage indipensable pour programmer! il te donne un aspect de la programation en general!
    si tu utilise java tu feras du C car ces deux langages ont la mm syntaxe!
    JAVA est un langage orienté objet tout comme C++! Ces deux langages sont tres presents dans les entreprises et permettent de realiser de grandes choses! ex:sur les portables les jeux sont programmer pour la plupart en java
    0
  2. maïwene Messages postés 26 Statut Membre
     
    Ah: ok! je comprends! MERCI!
    et pour Ajax c'est la m chose que Java?
    0
  3. ben1852 Messages postés 35 Statut Membre
     
    ajax je ne connais pas!
    si tu commence a programmer tte facon commence par le langage C.
    Pour les debutant tu as VBA. C'est un langage que tu trouves sous excel. Langage qui te permet d'acquerir de bonne notion de base pour la programtion.
    Le langage C se complique assez rapidement c pour cela qu'il te faut aborder quelques petites notions ms bon si tu es motivé attaque le langage C.
    0
  4. up_to Messages postés 11 Statut Membre
     
    salut, je cherche des liens pour commencer ma autoFormation sur AJAX
    en fait, je cherche des cours simplifiés car je n'ai aucune idée
    merci d'avance :)
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. up_to Messages postés 11 Statut Membre
     
    ah j'ai oublié, sur quel environnement je dois travailler
    thnx
    0
    1. Alain_42 Messages postés 5413 Statut Membre 904
       
      Salut,

      AJAX c'est une fonctionnalité de Javascript,, c'est à dire qu'il s'éxécute coté client, qui permet d'appeler le serveur en "arrière plan" et de modifer ainsi l'affichage d'une page HTML sans recharger la page.
      0
  7. Utilisateur anonyme
     
    Attention:

    - Java et C sont des languages de programmation.

    - Ajax est une sorte de protocole d'échange de données entre le client et le serveur. Du côté du client il y a du JavaScript qui utilise des objet XMLHttpRequest pour les requêtes, et du côté du serveur, il y a ce que tu veux (pourvu qu'il y ait des librairies XML pour répondre aux requêtes du client).

    Ajax est par exemple très utilisé en ce moment par les sites web sur lesquels tu peux lire ton courrier électronique car cette technologie permet de lire le courrier sur le serveur sans recharger la page en entier.

    Plus d'infos sur Wikipedia
    0
  8. up_to Messages postés 11 Statut Membre
     
    merci pour les informations
    je veux savoir en plus comment procéder pour développer une applications en AJAX (coté pratique: l'environnement, frameworks, des outils...)
    je vous remercie infiniment pour votre patience
    0
    1. Alain_42 Messages postés 5413 Statut Membre 904
       
      Attention AJAX n'est pas en soi un langage de programmation, c'est un outil, un complément au Javascript.
      0
      1. up_to Messages postés 11 Statut Membre > Alain_42 Messages postés 5413 Statut Membre
         
        bon je comprend ça
        mais côté pratique je suis vraiment perdue
        merci dans tous les cas
        0
      2. Alain_42 Messages postés 5413 Statut Membre 904 > up_to Messages postés 11 Statut Membre
         
        Pour choisr le language que tu vas utiliser:

        - analyse le besoin en fonction du cahier des charges de ton projet. Besoin en puissance de calcul, en graphisme etc...

        - est ce une appli qui serra utilisée via intranet ou internet ?

        - cette appli serra hébergée sur un PC ou sur une machine distante chez un hebergeur par exemple ou un serveur intranet.

        En fonction de ces critères (la liste n'est aps exaustive) tu t'orientes vers un langage.
        0
  9. up_to Messages postés 11 Statut Membre
     
    ok je vois, merci Alain.
    Mon encadreur m'a demandé de maitriser l'AJAX pour faire une interface
    mais je suis novice, même les tutoriels ne m'ont pas donner un coup de démarrage
    je connais un peu le java script, mais qu'est ce que je dois télécharger en plus?
    comment travailler avec le HttpRequest ? c'est un langage, outil ou quoi?
    désolé si mes questions sont aussi banal
    merci beaucoup
    0
    1. Alain_42 Messages postés 5413 Statut Membre 904
       
      Ha d'accord c'est plus clair.

      Donc tu as une page en HTML avec du javascript dedans.

      Le principe:

      Dans ta page html, sur un évenement, par exemple un click sur un bouton, un changement dans une liste, cela déclenche un appel de fonction javascript.

      HttpRequest est une fonction particulière Javascript qui permet d'appeler le serveur en asynchrone (en arrière plan, l'utilisateur ne s'en rend pas compte)
      Il y a des tutos et des scripts tout faits qui parametrent cette httRequest pour q"'elle fonctionne avec tous les navigateurs ( he oui tout n'est pas homogène dans le monde de l'internet)

      Bref cette requette appelle un script sur le serveur distant (chez ton hebergeur), si tu est sur un serveur
      qui accepte le PHP ce sera un script PHP. Et passes à ce script des parametres (datas)

      Ce script éxécute une tache, par exemple lire des enregistrements précis en fonction des ces datas.
      Il répond en envoyant les résultats (sous forme de texte ou xml)

      La requette HttRequest traite la réponse et va écrire "écrire" ça dans lapage à l'endroit ou tu veux.

      Il faut que tu fasses:

      - dans <head> </head> de ta page HTMLl tu mets le script javascript fonction makeHttRequest()
      et fonction traitement de la réponse
      - dans la partie <body> de ta page html tu mets l'objet (bouton ....) qui va déclencher l'évenement et l'appel de la fonction par ex: onClick=" makeHttRequest;"
      - à l'endroit ou tu veux la réponse tu mets un <div id="id_ecrire"></div>
      - tu fais un script php qui sera appelé par Ajax

      Un exemple de code: 3 fichiers: gardes bien les mêmes noms !

      Page HTML (avec fonctions Ajax inclues): listes_liees.php
      <html>
      <head>
      <!--  Script de listes deroulantes liees  avec appel  par AJAX, (evite le rechargement de la page) -->
      <script language="Javascript"type="text/JavaScript">
      // Requette AJAX
      function makeRequest(url,id_niveau,id_ecrire){
      	var http_request = false;
      		//créer une instance (un objet) de la classe désirée fonctionnant sur plusieurs navigateurs
              if (window.XMLHttpRequest) { // Mozilla, Safari,...
                  http_request = new XMLHttpRequest();
                  if (http_request.overrideMimeType) {
                      http_request.overrideMimeType('text/xml');//un appel de fonction supplémentaire pour écraser l'en-tête envoyé par le serveur, juste au cas où il ne s'agit pas de text/xml, pour certaines versions de navigateurs Mozilla
                  }
              } else if (window.ActiveXObject) { // IE
                  try {
                      http_request = new ActiveXObject("Msxml2.XMLHTTP");
                  } catch (e) {
                      try {
                          http_request = new ActiveXObject("Microsoft.XMLHTTP");
                      } catch (e) {}
                  }
              }
      
              if (!http_request) {
                  alert('Abandon :( Impossible de créer une instance XMLHTTP');
                  return false;
              }
              http_request.onreadystatechange = function() { traitementReponse(http_request,id_ecrire); } //affectation fonction appelée qd on recevra la reponse
      		// lancement de la requete
      		http_request.open('POST', url, true);
      		//changer le type MIME de la requête pour envoyer des données avec la méthode POST ,  !!!! cette ligne doit etre absolument apres http_request.open('POST'....
      		http_request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
      		obj=document.getElementById(id_niveau);
      		data="val_sel="+obj.value;
              http_request.send(data);
      }
      
      function traitementReponse(http_request,id_ecrire) {
      	var affich="";
      	if (http_request.readyState == 4) {
      		if (http_request.status == 200) {
      					// cas avec reponse de PHP en mode texte:
      			//chargement des elements reçus dans la liste
      			var affich_list=http_request.responseText;
      				obj = document.getElementById(id_ecrire); 
                      obj.innerHTML = affich_list;
      		} 
      		else {
                      alert('Un problème est survenu avec la requête.');
              }
          }
      }
      </script>
      </head>
      <?php
      include ("config.php");
      // Connexion a la base de donnees  
      	$AccesBase = mysql_connect($host,$Login,$Pass);
      	mysql_select_db($DB,$AccesBase);
      	$QuestionBase = "SELECT DISTINCT $champ_niv FROM $Table  ORDER BY $champ_niv ASC " ;
      	$result_recherche=mysql_db_query($DB, $QuestionBase) or die (mysql_error());
      	$nombre_enr=mysql_num_rows($result_recherche);
      ?>
      <body>
      <form name="test1" method="post" action="liste_liees.php"  >
      	<div id="id_list1">Niveau:<br>
      		<select name="niv1" id="id_niv1" onChange="makeRequest('rep_PhpAjax.php','id_niv1','id_list2')">
      			<option>-- Choisissez --</option>
      <?php
      			while ($row=mysql_fetch_assoc($result_recherche)){
      ?>
      					<option value="<?php echo $row[$champ_niv]?>"><?php echo $row[$champ_niv]?></option> 
      <?php
      			}
      ?>
      		</select> 
      		<br><br>
      	</div>
      	
      	
      	<div id="id_list2">
      	<!-- ici sera charge la reponse mode texte de PHP à la request AJAX -->
      	</div>
      </form>
      </body>
      </html>
      
      le script php appelé par Ajax: rep_PhpAjax.php
      
      <code>
      <?php
      // script PHP interrogation Base de donnees pour reponse a la requette AJAX
      include ("config.php");
      
      // Connexion a la base de donnees  
      	$AccesBase = mysql_connect($host,$Login,$Pass);
      	mysql_select_db($DB,$AccesBase);
      	$QuestionBase = "SELECT * FROM $Table  WHERE ".$champ_niv."='".$_POST[val_sel]."' ORDER BY ".$champ_etud." ASC " ;
      	$result_recherche=mysql_db_query($DB, $QuestionBase) or die (mysql_error());
      // construction de la liste deroulante
      $aff=="";
      $aff=$aff."Etudiants:<br>
      		<select name='niv1' id='cont_list2' >
      		<option>-- Choisissez --</option>";
      		while ($row=mysql_fetch_assoc($result_recherche)){
      			$aff.="<option value=\"$row[$champ_etud]\">$row[$champ_etud]</option>"; 
      		}
      	$aff=$aff."</select><br><br>";
      // envoi reponse Php a Ajax	
      	echo $aff;
      ?>
      
      
      et enfin le fichier de configuration pour connexion à la base de données: config.php
      
      <code><?php
      $host="localhost";
      $Login="root";
      $Pass="allaurejul";
      $DB="test";
      $Table="etudiants";
      $champ_niv="niveau";
      $champ_etud="etudiants";
      ?>



      </code>
      </code>
      0
  10. up_to Messages postés 11 Statut Membre
     
    maintenant je comprend,
    merci bien ça m'était très claire
    0
    1. Alain_42 Messages postés 5413 Statut Membre 904
       
      Si tu veux que je te rajoute des commentaires dans le code pour expliciter chacune des phases .
      0
      1. up_to Messages postés 11 Statut Membre > Alain_42 Messages postés 5413 Statut Membre
         
        si tu me fais ce service je te serrai reconnaissante
        :)
        0
      2. Alain_42 Messages postés 5413 Statut Membre 904 > up_to Messages postés 11 Statut Membre
         
        config.php
        <?php
        $host="localhost";
        $Login="root";
        $Pass="xxxxx";
        $DB="test";//le nom de la base
        $Table="etudiants";//le nom de la table concernée
        $champ_niv="niveau";//champ de la table qui alimente la liste1
        $champ_etud="etudiants";//champ de la table qui alimente la liste2
        ?>


        listes_liees.php
        <html>
        <head>
        <!--  Script de listes deroulantes liees  avec appel  par AJAX, (evite le rechargement de la page) -->
        <script language="Javascript"type="text/JavaScript">
        // Requette  AJAX
        			//// fonction  envoi
        function makeRequest(url,id_niveau,id_ecrire){
        	//les arguments passés à cette fct: url=fichier php appele, id_niveau= id a lire, id_ecrire=id ou il faut ecrire
        	
        	//creation de la requette
        	var http_request = false;
        		//toute cette partie c'est pour la compatibilité avec les navigateurs principaux
        		//créer une instance (un objet) de la classe désirée fonctionnant sur plusieurs navigateurs
                if (window.XMLHttpRequest) { // Mozilla, Safari,...
                    http_request = new XMLHttpRequest();
                    if (http_request.overrideMimeType) {
                        http_request.overrideMimeType('text/xml');//un appel de fonction supplémentaire pour écraser l'en-tête envoyé par le serveur, juste au cas où il ne s'agit pas de text/xml, pour certaines versions de navigateurs Mozilla
                    }
                } else if (window.ActiveXObject) { // IE
                    try {
                        http_request = new ActiveXObject("Msxml2.XMLHTTP");
                    } catch (e) {
                        try {
                            http_request = new ActiveXObject("Microsoft.XMLHTTP");
                        } catch (e) {}
                    }
                }
        		//jusque là
        		//si ça marche pas:
                if (!http_request) {
                    alert('Abandon :( Impossible de créer une instance XMLHTTP');
                    return false;
                }
        		
        		//la on prépare la reception d ela réponse, si notre httpRequest change d'état il faudra appeler la fonction "traitementReponse"
                http_request.onreadystatechange = function() { traitementReponse(http_request,id_ecrire); } //affectation fonction appelée qd on recevra la reponse
        		
        		// lancement de la requete, on va envoyer les dat au script en methode POST
        		http_request.open('POST', url, true);
        		//changer le type MIME de la requête pour envoyer des données avec la méthode POST ,  !!!! cette ligne doit etre absolument apres http_request.open('POST'....
        		http_request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
        		
        		//lecture dans la page HTML de la valeur selectionnée dans la liste qui a déclenché l'appel de httRequest
        		obj=document.getElementById(id_niveau);
        		//la valeur ainsi lue sera envoyée dans le champ nommé "val_sel"
        		data="val_sel="+obj.value;
        		//envoi:
                http_request.send(data);
        }
        
        			/////  fonction traitement de la réponse
        function traitementReponse(http_request,id_ecrire) {
        	var affich="";
        	//on verifie que l'on a bien tout reçu
        	if (http_request.readyState == 4) {
        		if (http_request.status == 200) {
        					// cas avec reponse de PHP en mode texte:
        			//chargement des elements reçus dans la liste
        			var affich_list=http_request.responseText;
        				//on pointe l'objet poratnt l'id où il faut écrire, dans notre cas c'est un <div id=......>
        				var obj = document.getElementById(id_ecrire);
        				//on y ecrit ce qu'on a reçu du script
                        obj.innerHTML = affich_list;
        		} 
        		else {
                        alert('Un problème est survenu avec la requête.');
                }
            }
        }
        </script>
        </head>
        <?php
        include ("config.php");
        // Connexion a la base de donnees  
        	$AccesBase = mysql_connect($host,$Login,$Pass);
        	mysql_select_db($DB,$AccesBase);
        	$QuestionBase = "SELECT DISTINCT $champ_niv FROM $Table  ORDER BY $champ_niv ASC " ;
        	$result_recherche=mysql_db_query($DB, $QuestionBase) or die (mysql_error());
        	$nombre_enr=mysql_num_rows($result_recherche);
        ?>
        <body>
        <form name="test1" method="post" action="liste_liees.php"  >
        	<div id="id_list1">Niveau:<br>
        		<select name="niv1" id="id_niv1" onChange="makeRequest('rep_PhpAjax.php','id_niv1','id_list2')">
        		<!-- si changement dans la lsite on appelle le fct makeRequest en lui passant les parametres (script a appeler, id a lire, id a ecrire) -->
        			<option>-- Choisissez --</option>
        <?php
        			while ($row=mysql_fetch_assoc($result_recherche)){
        ?>
        					<option value="<?php echo $row[$champ_niv]?>"><?php echo $row[$champ_niv]?></option> 
        <?php
        			}
        ?>
        		</select> 
        		<br><br>
        	</div>
        	
        	
        	<div id="id_list2">
        	<!-- ici sera charge la reponse mode texte de PHP à la request AJAX -->
        	</div>
        </form>
        </body>
        </html>


        rep_PhpAjax.php
        <?php
        // script PHP interrogation Base de donnees pour reponse a la requette AJAX
        // on genere une liste 2 en fonction du choix dans liste1 ( ex : liste1 niveaux, liste 2 etudiants de ce niveau)
        include ("config.php");// on inclus ici le fichier de configuration contenant les parametres de connexion à la base
        
        // $_POST[val_sel]  recupere la valeur que nous a envoyé la fonction httRequest  ( data="val_sel="+obj.value; )
        
        // Connexion a la base de donnees  
        	$AccesBase = mysql_connect($host,$Login,$Pass);
        	mysql_select_db($DB,$AccesBase);
        	//lecture valeurs dans la base correspondantes au niveau selectionnné
        	//requette mysql
        	$QuestionBase = "SELECT * FROM $Table  WHERE ".$champ_niv."='".$_POST[val_sel]."' ORDER BY ".$champ_etud." ASC " ;
        	$result_recherche=mysql_db_query($DB, $QuestionBase) or die (mysql_error());
        	
        // construction de la liste deroulante
        // $aff.=  permet de concatener
        $aff=="";
        $aff.="Etudiants:<br>
        		<select name='niv1' id='cont_list2' >
        		<option>-- Choisissez --</option>";
        		//boucle qui parcours les extractions de la base ligne par ligne
        		while ($row=mysql_fetch_assoc($result_recherche)){
        			$aff.="<option value=\"$row[$champ_etud]\">$row[$champ_etud]</option>"; 
        		}
        	$aff.="</select><br><br>";
        	
        // envoi reponse Php a la fonction pour traitement	
        	echo $aff;
        ?>
        0