IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

AJAX Discussion :

[AJAX] Faire un tableau AJAX


Sujet :

AJAX

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2013
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2013
    Messages : 4
    Points : 2
    Points
    2
    Par défaut [AJAX] Faire un tableau AJAX
    Bonjour,

    je souhaite faire un tableau en Ajax afin d'éviter de recharger toute la page et voila je n'y arrive pas du tout.
    voici le type de tableau que je souhaite faire (en plus joli bien sur ^^ )



    voici mon code pour le moment
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
     
    include ("functions_php.php");
    ?>
    <html>
    <head>
    </head>
    	<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js" type="text/javascript"></script>
    	<script type="text/javascript">
    	function reload_test ()
    		{
    			$.ajax({
    				type:"GET",
    				url :"select_test.php",
    				success: function(data){
    					$('#existant').html(data);
    					document.addEventListener('click', get_eventlistener, true);
    				},
    				error:	function(){
    					alert("Impossible de charger les éléments");
    				}
     
    			});
    		}
    		$(document).ready(function() {reload_SPP ();});
    		$('#existant').on('click', '#supprimer', function () {alert("test");});
    		function delete_test (element)
    		{
    			var t = document.getElementById(element);
    			var parent = t.parentNode.id;
    			var dataString = "id=" + parent;				
    			$.ajax({
    				type:"POST",
    				data: dataString,
    				url :"delete_test.php",
    				success: function(data){
    					alert("Suppression effectué");
    					reload_test ();
    				},
    				error:	function(){
    					alert("Impossible de supprimer");
    				}
     
    			});
    		}
    		function ajouter ()
    		{
    			var test1 = $('#test_1').val();
    			var test2 = $('#test_2').val();
    			var test3 = $('#test_3').val();
    			var test4 = $('#test_4').val();
    			var test5 = $('#test_5').val();
    			var test6 = $('#test_6').val();
    			var test7 = $('#test_7').val();
    			var dataString = "test1=" + test1 + "&test2=" + test2 + "&test3=" + test3
    							+ "&test4=" + test4 + "&test5=" + test5 + "&test6=" + test6 + "&test7=" + test7;				
    			$.ajax({
    				type:"POST",
    				data: dataString,
    				url :"insert_test.php",
    				success: function(data){
    					alert("Insertion effectué");
    					reload_SPP ();
    				},
    				error:	function(){
    					alert("Impossible d'ajouter");
    				}
     
    			});
    			document.getElementById("test_1").value = "";
    			document.getElementById("test_2").value = "";
    			document.getElementById("test_3").value = "";
    			document.getElementById("test_4").value = "";
    			document.getElementById("test_5").value = "";
    			document.getElementById("test_6").value = "";
    			document.getElementById("test_7").value = "";
    			reload_SPP ();
    		}
    		function update_test (element)
    		{
    			var t = document.getElementById(element);
    			var parent = t.parentNode.id;
    			var test1 = $('#unique_test1').val();
    			var test2 = $('#unique_test2').val();
    			var test3 = $('#unique_test3').val();
    			var test4 = $('#unique_test4').val();
    			var test5 = $('#unique_test5').val();
    			var test6 = $('#unique_test6').val();
    			var test7 = $('#unique_test7').val();
    			var dataString = "id=" + parent + "&test1=" + test1 + "&test2=" + test2 + "&test3=" + test3
    							+ "&test4=" + test4 + "&test5=" + test5 + "&test6=" + test6 + "&test7=" + test7;
    			alert (dataString);
    			$.ajax({
    				type:"POST",
    				data: dataString,
    				url :"update_test.php",
    				success: function(data){
    					alert("Modification effectué");
    					reset_all ();
    					reload_SPP ();
    				},
    				error:	function(){
    					alert("impossible de modifier");
    				}
     
    			});
    		}
    		function copy_name (element)
    		{
    			document.getElementById("unique_test1").value = element.value;
    		}
    		function copy_transac (element)
    		{
    			document.getElementById("unique_test2").value = element.value;
    		}
    		function copy_pdf (element)
    		{
    			document.getElementById("unique_test3").value = element.value;
    		}
    		function copy_word (element)
    		{
    			document.getElementById("unique_test4").value = element.value;
    		}
    		function copy_video (element)
    		{
    			document.getElementById("unique_test5").value = element.value;
    		}
    		function copy_exo (element)
    		{
    			document.getElementById("unique_test6").value = element.value;
    		}
    		function copy_motscles (element)
    		{
    			document.getElementById("unique_test").value = element.value;
    		}
    		function reset_all (element)
    		{
    			document.getElementById("unique_test1").value = "";
    			document.getElementById("unique_test2").value = "";
    			document.getElementById("unique_test3").value = "";
    			document.getElementById("unique_test4").value = "";
    			document.getElementById("unique_test5").value = "";
    			document.getElementById("unique_test6").value = "";
    			document.getElementById("unique_test7").value = "";
    		}
    	</script>
    <body>
    	<input type="hidden" id="unique_test1" name="unique_test1" value="" />
    	<input type="hidden" id="unique_test2" name="unique_test2" value="" />
    	<input type="hidden" id="unique_test3" name="unique_test3" value="" />
    	<input type="hidden" id="unique_test4" name="unique_test4" value="" />
    	<input type="hidden" id="unique_test5" name="unique_test5" value="" />
    	<input type="hidden" id="unique_test6" name="unique_test6" value="" />
    	<input type="hidden" id="unique_test7" name="unique_test7" value="" />
     
    	<img src="logo_assistance.png" style="position: relative; left:100px;" />
    	<img src="bando.png" style="position : relative; left:0px; padding-left:0px; padding-right:0px; width:100%; repeat:repeat-x;" />
    	<a href="admin.php">Administration</a>
    	</body>
    	<div>
    			<p>
    				TEST
    			</p>
    			<fieldset>
    				<legend>Information </legend>
    				<p>
    					test1: <input type="text" id="test_test" name="test_test" value="" size="50">
    					test2: <input type="text" id="test_test" name="test_test" value="" size="15">
    				</p>
    			</fieldset>
    			<fieldset>
    				<legend>Liens</legend>
    				<p>
    				<table align="left" width="50%"  cellspacing="10" cellpadding="5" >
      <tr> 
        <td align="left">lien test3:<input type="text" id="test_test3" name="test_test" value="" size="35"></td>
        <td align="left">lien test4:<input type="text" id="test_test4" name="test_test" value="" size="35"></td>
    	<td align="left">lien test5:<input type="text" id="test_test5" name="test_test" value="" size="35"></td>
      </tr>
      <tr>
        <td align="left">lien test6: <input type="text" id="test_test6" name="test_test" value="" size="35"></td>
        <td align="left">lien test7: <input type="text" id="test_test7" name="test_test" value="" size="35"></td>
      </tr>
    </table>
     
    				</p>
    			</fieldset>
    			<input type="submit" id="ajouter" name="ajouter" value="ajouter" OnClick="ajouter ();"></a>
    	</div>
    	<p>Liens présents dans la base de donnée</p>
    	<div id="existant">
    	</div>
    </html>
    Sur ma page il y'a une partie en html. Mais c'est le tableau qui doit juste etre en ajax avec les données récupérés dans la bdd a la place des " xxxx"

    Voila je suis perdu j'y arrive pas du tout.
    Merci d'avance pour votre aide

  2. #2
    Membre habitué
    Inscrit en
    Décembre 2010
    Messages
    92
    Détails du profil
    Informations forums :
    Inscription : Décembre 2010
    Messages : 92
    Points : 129
    Points
    129
    Par défaut
    Hello,
    Ce n'est pas bien compliqué.
    Je ne vais pas rentrer dans le détail technique mais :

    Au click de ton action, une requête ajax doit partir avec l'id de la ligne en paramètre et l'action à faire.
    Tu fais ton traitement en php à la réception de ta requête, et tu renvois un flux json (je trouve ça plus propre qu'une ligne html), puis tu fais les modifications dans ta page d'origine.

    Sinon, tu fais pareil sauf qu'à la place de json, tu retourne toute ta ligne html mais c'est pas très propre.

    Bonne chance

    Edit : Je viens de parcourir vite fait ton code, et conseil, tu devrais utiliser jQuery ça allégera ton code.

    Exemple : remplacer document.getElementById("unique_test1") par $("#unique_test1");

  3. #3
    Membre habitué
    Inscrit en
    Décembre 2010
    Messages
    92
    Détails du profil
    Informations forums :
    Inscription : Décembre 2010
    Messages : 92
    Points : 129
    Points
    129
    Par défaut
    En fait, je reprends parce qu'en regardant ton code, je vois qu'il y a pas mal d'erreurs.
    Mais ce n'est pas grave, tu es sur un forum alors ça va aller

    Bon, déjà, ta fonction reset_all() a un argument alors que tu ne l'utilise jamais donc retire le.

    Ensuite, dans ton tableau, tu veux pouvoir éditer comment tes champs ?
    Si ce sont des inputs, c'est plus simple (par contre attention à ne pas avoir les même id ! surtout si tu génère ton tableau en php).

    Ensuite, pourquoi faire un reset_all (); reload_SPP (); après une modification de données ?
    La fonction reload_SPP() fait quoi d'ailleur ? à ce moment là en fait, tu devrais mettre à jour ton tableau en fonction de l'id que tu as envoyé au départ.

    Par exemple, tu modifie la ligne 12, tu passe l'id en param dans ta fonction ajax, et au retour, tu fais la modification de la ligne 12 avec le retour ajax.

    Tu comprends ?

  4. #4
    Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2013
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2013
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    Bonjour et merci Same66

    En faite voila ce à quoi ma page doit vraiment ressembler.
    Avec ce qui est ajouté dans le 1er tableau est ensuite transféré dans le second en dessous. LE 1er tableau est en html et c'est le second qui doit etre en ajax


    Je dois t'avouer que je ne comprends pas

    Au click de ton action, une requête ajax doit partir avec l'id de la ligne en paramètre et l'action à faire.
    Tu fais ton traitement en php à la réception de ta requête, et tu renvois un flux json (je trouve ça plus propre qu'une ligne html), puis tu fais les modifications dans ta page d'origine.
    et

    Par exemple, tu modifie la ligne 12, tu passe l'id en param dans ta fonction ajax, et au retour, tu fais la modification de la ligne 12 avec le retour ajax.
    J'ai effectivement modifié le code pour l'alléger

    Je suis désolé mais je suis vraiment novice.

  5. #5
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    Impossible de reprendre tout ton code, cela ne te rendrait pas service.
    Je te conseille de trouver un des milliers d'exemples pour modifier 3/4 cases d'un tableau avec AJAX

    Il s’agit de codes tout simples, qui en prime te mettent à jour le tableau dans
    ta base de données et a l'écran bien sûr.

    Une fois compris le mécanisme tu l'adapteras à ton tableau de façon très simple.

    Si tu veux de l'aide, soi précis

    A++
    Christele

Discussions similaires

  1. [AJAX] faire de l'ajax à l'envers
    Par gael dans le forum AJAX
    Réponses: 2
    Dernier message: 27/04/2009, 10h59
  2. [AJAX] faire une requete ajax
    Par brunochp dans le forum AJAX
    Réponses: 4
    Dernier message: 20/03/2009, 09h37
  3. [AJAX] Recuperer la valeur d'un champs d'un tableau AJAX
    Par Greggggggg dans le forum Général JavaScript
    Réponses: 13
    Dernier message: 07/06/2008, 18h41
  4. [AJAX] Comment faire de l'ajax vers deux serveurs
    Par wtfu dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 27/07/2006, 13h39
  5. [AJAX] Peut-on faire de l'AJAX avec ASPX
    Par Kylen dans le forum ASP.NET
    Réponses: 5
    Dernier message: 08/06/2006, 12h34

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo