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 :

Retour dans success n'affiche rien


Sujet :

AJAX

  1. #1
    Membre à l'essai
    Retour dans success n'affiche rien
    Bonjour bonsoir,

    j'ai ce code ci:
    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
    $(document).ready(function() {
     
    if (navigator.geolocation){
        navigator.geolocation.getCurrentPosition(function(position){
     
                var userLat = position.coords.latitude;
                var userLong = position.coords.longitude;
                console.log( userLong);
                console.log( userLat);
     
                $.ajax({
                  type: 'POST',
     
                  url: 'index.php',
     
                  data: {
                  userLat : userLat,
                  userLong : userLong
                  },
                  success: function(data)
                    {
                      console.log(data);
                        alert("boom boom tam tam!");
     
                    }
     
                });
     
        });
    }else{
        console.log("Browser doesn't support geolocation!");
    }});


    Rien de bien compliqué à priorie, pourtant ce code m'affiche tout le contenu HTML de la page, dans ma variable data. Et quand je précise le type de données (dataType: 'json'), alors la fonction success n'affiche plus rien.

    Quelqu'un saurait-il ce qui cloche ?

    Merci d'avance

  2. #2
    Membre émérite
    Salut,

    Lorsqu'on met dataType:"json" dans ajax, le fichier php doit retourner une réponse json avec json_encode().

    Si le callback success ne s'exécute pas, cela veut dire qu'il y'a probablement une erreur dans ton script php, pour l'identifier essaies d'ajouter le callback error dans ajax pour voir :
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    success:function(){
      ...
    },
    error:function(erreur){
       alert("Erreur ajax :",erreur);//cette alerte est déclenchée ou pas ?
    }

  3. #3
    Membre à l'essai
    Bonsoir Toufik83,

    L'alerte dans la fonction erreur est déclenchée. J'ai un Erreur ajax:

    Ce qui valide ton hypothèse de l'erreur dans mon code PHP ??? (Mais comment savoir où précisément ? )

  4. #4
    Membre émérite
    D'après ce que je vois, l'erreur de l'alerte est undefined, c'est probablement pour ça qu'elle n’apparaît pas dans le message.

    Sinon tu peux aussi utiliser l'onglet réseau de l'outil de développement pour tracer l'erreur.

  5. #5
    Membre à l'essai
    Dans l'onglet réseau, j'ai ça:
    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
    0
    	GET	
    localhost	index.php	document	html	12,83 Ko	12,48 Ko
    304
    	GET	
    localhost	style.css	stylesheet	css	mis en cache	3,45 Ko
    304
    	GET	
    stackpath.bootstrapcdn.com	bootstrap.min.css	stylesheet	css	mis en cache	118,61 Ko
    304
    	GET	
    kit.fontawesome.com	d9b3bb88dd.js	script	js	mis en cache	0 o
    304
    	GET	
    ajax.googleapis.com	jquery.min.js	script	js	mis en cache	0 o
    200
    	GET	
    maps.googleapis.com	js?key=AIzaSyAheEGTDWv7q_5dMcztZIH9d18GvXtyB8E&callback=initMap	script	js	38,76 Ko	117,81 Ko
    200
    	GET	
    localhost	favicon.ico	img	x-icon	mis en cache	197,83 Ko
    304
    	GET	
    maps.googleapis.com	common.js	script	js	mis en cache	0 o
    304
    	GET	
    maps.googleapis.com	util.js	script	js	mis en cache	0 o
    304
    	GET	
    maps.googleapis.com	map.js	script	js	mis en cache	0 o
    304
    	GET	
    maps.googleapis.com	infowindow.js	script	js	mis en cache	0 o
    304
    	GET	
    kit-free.fontawesome.com	free-v4-shims.min.css	stylesheet	css	mis en cache	25,07 Ko
    304
    	GET	
    kit-free.fontawesome.com	free-v4-font-face.min.css	stylesheet	css	mis en cache	2,80 Ko
    304
    	GET	
    kit-free.fontawesome.com	free.min.css	stylesheet	css	mis en cache	56,07 Ko
    304
    	GET	
    maps.googleapis.com	onion.js	script	js	mis en cache	0 o
    304
    	GET	
    maps.gstatic.com	openhand_8_8.cur	img	bmp	mis en cache	326 o
    200
    	GET	
    maps.googleapis.com	ViewportInfoService.GetViewportInfo?1m6&1m2&1d-34.40052799567049&2d150.61842031155274&2m2&1d-34.39366705643708&2d150.66954537487263&2u17&4sfr&5e0&6sm@501000000&7b0&8e0&callback=_xdc_._8bj5ub&key=AIzaSyAheEGTDWv7q_5dMcztZIH9d18GvXtyB8E&token=125664	script	js	2,77 Ko	21,45 Ko
    200
    	GET	
    maps.googleapis.com	AuthenticationService.Authenticate?1shttp://localhost/VaTo/index.php&4sAIzaSyAheEGTDWv7q_5dMcztZIH9d18GvXtyB8E&callback=_xdc_._irjbbq&key=AIzaSyAheEGTDWv7q_5dMcztZIH9d18GvXtyB8E&token=1213	script	js	636 o	62 o
    200
    	GET	
    maps.googleapis.com	vt?pb=!1m5!1m4!1i17!2i120383!3i78888!4i256!2m3!1e0!2sm!3i501176000!3m12!2sfr!3sUS!5e18!12m4!1e68!2m2!1sset!2sRoadmap!12m3!1e37!2m1!1ssmartmaps!4e0&key=AIzaSyAheEGTDWv7q_5dMcztZIH9d18GvXtyB8E&token=20759	img	png	871 o (en compétition)	234 o
    200
    	GET	
    maps.googleapis.com	vt?pb=!1m5!1m4!1i17!2i120382!3i78888!4i256!2m3!1e0!2sm!3i501216758!3m12!2sfr!3sUS!5e18!12m4!1e68!2m2!1sset!2sRoadmap!12m3!1e37!2m1!1ssmartmaps!4e0&key=AIzaSyAheEGTDWv7q_5dMcztZIH9d18GvXtyB8E&token=39562	img	png	1,25 Ko (en compétition)	647 o
    200
    	GET	
    maps.googleapis.com	vt?pb=!1m5!1m4!1i17!2i120382!3i78887!4i256!2m3!1e0!2sm!3i501216758!3m12!2sfr!3sUS!5e18!12m4!1e68!2m2!1sset!2sRoadmap!12m3!1e37!2m1!1ssmartmaps!4e0&key=AIzaSyAheEGTDWv7q_5dMcztZIH9d18GvXtyB8E&token=34892	img	png	814 o (en compétition)	181 o
    200
    	GET	
    maps.googleapis.com	vt?pb=!1m5!1m4!1i17!2i120383!3i78887!4i256!2m3!1e0!2sm!3i501176000!3m12!2sfr!3sUS!5e18!12m4!1e68!2m2!1sset!2sRoadmap!12m3!1e37!2m1!1ssmartmaps!4e0&key=AIzaSyAheEGTDWv7q_5dMcztZIH9d18GvXtyB8E&token=16089	img	png	1,43 Ko (en compétition)	836 o
    200
    	GET	
    maps.googleapis.com	vt?pb=!1m5!1m4!1i17!2i120384!3i78887!4i256!2m3!1e0!2sm!3i501176000!3m12!2sfr!3sUS!5e18!12m4!1e68!2m2!1sset!2sRoadmap!12m3!1e37!2m1!1ssmartmaps!4e0&key=AIzaSyAheEGTDWv7q_5dMcztZIH9d18GvXtyB8E&token=75516	img	png	1,27 Ko (en compétition)	667 o
    200
    	GET	
    maps.googleapis.com	vt?pb=!1m5!1m4!1i17!2i120384!3i78888!4i256!2m3!1e0!2sm!3i501176000!3m12!2sfr!3sUS!5e18!12m4!1e68!2m2!1sset!2sRoadmap!12m3!1e37!2m1!1ssmartmaps!4e0&key=AIzaSyAheEGTDWv7q_5dMcztZIH9d18GvXtyB8E&token=80186	img	png	1,18 Ko (en compétition)	574 o
    200
    	GET	
    maps.googleapis.com	vt?pb=!1m5!1m4!1i17!2i120381!3i78888!4i256!2m3!1e0!2sm!3i501216758!3m12!2sfr!3sUS!5e18!12m4!1e68!2m2!1sset!2sRoadmap!12m3!1e37!2m1!1ssmartmaps!4e0&key=AIzaSyAheEGTDWv7q_5dMcztZIH9d18GvXtyB8E&token=111206	img	png	2,15 Ko (en compétition)	1,53 Ko
    200
    	GET	
    maps.googleapis.com	vt?pb=!1m5!1m4!1i17!2i120381!3i78887!4i256!2m3!1e0!2sm!3i501216758!3m12!2sfr!3sUS!5e18!12m4!1e68!2m2!1sset!2sRoadmap!12m3!1e37!2m1!1ssmartmaps!4e0&key=AIzaSyAheEGTDWv7q_5dMcztZIH9d18GvXtyB8E&token=106536	img	png	1,98 Ko (en compétition)	1,36 Ko
    200
    	GET	
    maps.googleapis.com	vt?pb=!1m5!1m4!1i17!2i120385!3i78887!4i256!2m3!1e0!2sm!3i501176000!3m12!2sfr!3sUS!5e18!12m4!1e68!2m2!1sset!2sRoadmap!12m3!1e37!2m1!1ssmartmaps!4e0&key=AIzaSyAheEGTDWv7q_5dMcztZIH9d18GvXtyB8E&token=3872	img	png	1,92 Ko (en compétition)	1,30 Ko
    200
    	GET	
    maps.googleapis.com	vt?pb=!1m5!1m4!1i17!2i120385!3i78888!4i256!2m3!1e0!2sm!3i501176000!3m12!2sfr!3sUS!5e18!12m4!1e68!2m2!1sset!2sRoadmap!12m3!1e37!2m1!1ssmartmaps!4e0&key=AIzaSyAheEGTDWv7q_5dMcztZIH9d18GvXtyB8E&token=8542	img	png	1,40 Ko (en compétition)	800 o
    200
    	GET	
    maps.googleapis.com	vt?pb=!1m5!1m4!1i17!2i120380!3i78888!4i256!2m3!1e0!2sm!3i501216758!3m12!2sfr!3sUS!5e18!12m4!1e68!2m2!1sset!2sRoadmap!12m3!1e37!2m1!1ssmartmaps!4e0&key=AIzaSyAheEGTDWv7q_5dMcztZIH9d18GvXtyB8E&token=51779	img	png	1,48 Ko (en compétition)	879 o
    200
    	GET	
    maps.googleapis.com	vt?pb=!1m5!1m4!1i17!2i120380!3i78887!4i256!2m3!1e0!2sm!3i501216758!3m12!2sfr!3sUS!5e18!12m4!1e68!2m2!1sset!2sRoadmap!12m3!1e37!2m1!1ssmartmaps!4e0&key=AIzaSyAheEGTDWv7q_5dMcztZIH9d18GvXtyB8E&token=47109	img	png	1,91 Ko (en compétition)	1,29 Ko
    200
    	GET	
    maps.googleapis.com	vt?pb=!1m5!1m4!1i17!2i120386!3i78887!4i256!2m3!1e0!2sm!3i501176000!3m12!2sfr!3sUS!5e18!12m4!1e68!2m2!1sset!2sRoadmap!12m3!1e37!2m1!1ssmartmaps!4e0&key=AIzaSyAheEGTDWv7q_5dMcztZIH9d18GvXtyB8E&token=63299	img	png	1,03 Ko (en compétition)	417 o
    200
    	GET	
    maps.googleapis.com	vt?pb=!1m5!1m4!1i17!2i120386!3i78888!4i256!2m3!1e0!2sm!3i501176000!3m12!2sfr!3sUS!5e18!12m4!1e68!2m2!1sset!2sRoadmap!12m3!1e37!2m1!1ssmartmaps!4e0&key=AIzaSyAheEGTDWv7q_5dMcztZIH9d18GvXtyB8E&token=67969	img	png	940 o (en compétition)	307 o
    200
    	GET	
    maps.googleapis.com	vt?pb=!1m4!1m3!1i17!2i120380!3i78887!1m4!1m3!1i17!2i120381!3i78887!1m4!1m3!1i17!2i120382!3i78887!1m4!1m3!1i17!2i120383!3i78887!1m4!1m3!1i17!2i120380!3i78888!1m4!1m3!1i17!2i120381!3i78888!1m4!1m3!1i17!2i120382!3i78888!1m4!1m3!1i17!2i120383!3i78888!1m4!1m3!1i17!2i120384!3i78887!1m4!1m3!1i17!2i120385!3i78887!1m4!1m3!1i17!2i120386!3i78887!1m4!1m3!1i17!2i120384!3i78888!1m4!1m3!1i17!2i120385!3i78888!1m4!1m3!1i17!2i120386!3i78888!2m3!1e0!2sm!3i501217730!3m12!2sfr!3sUS!5e18!12m4!1e68!2m2!1sset!2sRoadmap!12m3!1e37!2m1!1ssmartmaps!4e3!12m1!5b1&callback=_xdc_._x0qrni&key=AIzaSyAheEGTDWv7q_5dMcztZIH9d18GvXtyB8E&token=90859	script	js	875 o (en compétition)	976 o
    200
    	GET	
    maps.googleapis.com	QuotaService.RecordEvent?1shttp://localhost/VaTo/index.php&3sAIzaSyAheEGTDWv7q_5dMcztZIH9d18GvXtyB8E&7sir8ps8&10e1&callback=_xdc_._axpzdz&key=AIzaSyAheEGTDWv7q_5dMcztZIH9d18GvXtyB8E&token=125475	script	js	849 o	416 o
    200
    	GET	
    maps.googleapis.com	controls.js	script	js	mis en cache	0 o
    200
    	GET	
    maps.gstatic.com	transparent.png	img	png	617 o (en compétition)	68 o
    200
    	GET	
    fonts.googleapis.com	css?family=Roboto:300,400,500,700|Google+Sans:400,500,700	stylesheet	css	mis en cache	14,54 Ko
    200
    	POST	
    localhost	index.php	xhr	html	12,83 Ko	12,48 Ko
    200
    	GET	
    maps.gstatic.com	google4.png	img	png	2,56 Ko (en compétition)	2,02 Ko
    200
    	GET	
    maps.googleapis.com	marker.js	script	js	mis en cache	0 o
    304
    	GET	
    maps.gstatic.com	google_gray.svg	img	svg	mis en cache	2,16 Ko
    200
    	GET	
    maps.googleapis.com	vt?pb=!1m4!1m3!1i17!2i66422!3i45219!1m4!1m3!1i17!2i66423!3i45219!1m4!1m3!1i17!2i66422!3i45220!1m4!1m3!1i17!2i66423!3i45220!1m4!1m3!1i17!2i66424!3i45219!1m4!1m3!1i17!2i66425!3i45219!1m4!1m3!1i17!2i66426!3i45219!1m4!1m3!1i17!2i66427!3i45219!1m4!1m3!1i17!2i66424!3i45220!1m4!1m3!1i17!2i66425!3i45220!1m4!1m3!1i17!2i66426!3i45220!1m4!1m3!1i17!2i66427!3i45220!1m4!1m3!1i17!2i66428!3i45219!1m4!1m3!1i17!2i66428!3i45220!2m3!1e0!2sm!3i501217730!3m17!2sfr!3sUS!5e18!12m4!1e68!2m2!1sset!2sRoadmap!12m3!1e37!2m1!1ssmartmaps!12m4!1e26!2m2!1sstyles!2zcC5zOi02MHxwLmw6LTYw!4e3!12m1!5b1&callback=_xdc_._j04c6b&key=AIzaSyAheEGTDWv7q_5dMcztZIH9d18GvXtyB8E&token=75097	script	js	3,50 Ko	13,85 Ko
    200
    	GET	
    maps.googleapis.com	ViewportInfoService.GetViewportInfo?1m6&1m2&1d48.622711072065826&2d2.416615648853741&2m2&1d48.628207006708514&2d2.4676746545664456&2u17&4sfr&5e0&6sm@501000000&7b0&8e0&callback=_xdc_._qy57bz&key=AIzaSyAheEGTDWv7q_5dMcztZIH9d18GvXtyB8E&token=23053	script	js	2,92 Ko	20,94 Ko
    200
    	GET	
    maps.googleapis.com	vt?pb=!1m4!1m3!1i17!2i66422!3i45219!1m4!1m3!1i17!2i66423!3i45219!1m4!1m3!1i17!2i66422!3i45220!1m4!1m3!1i17!2i66423!3i45220!1m4!1m3!1i17!2i66424!3i45219!1m4!1m3!1i17!2i66425!3i45219!1m4!1m3!1i17!2i66426!3i45219!1m4!1m3!1i17!2i66427!3i45219!1m4!1m3!1i17!2i66424!3i45220!1m4!1m3!1i17!2i66425!3i45220!1m4!1m3!1i17!2i66426!3i45220!1m4!1m3!1i17!2i66427!3i45220!1m4!1m3!1i17!2i66428!3i45219!1m4!1m3!1i17!2i66428!3i45220!2m3!1e0!2sm!3i501217730!3m17!2sfr!3sUS!5e18!12m4!1e68!2m2!1sset!2sRoadmap!12m3!1e37!2m1!1ssmartmaps!12m4!1e26!2m2!1sstyles!2zcC5zOi02MHxwLmw6LTYw!4e3!12m1!5b1&callback=_xdc_._j04c6b&key=AIzaSyAheEGTDWv7q_5dMcztZIH9d18GvXtyB8E&token=75097	script	js	mis en cache	13,85 Ko
    200
    	GET	
    maps.googleapis.com	vt?pb=!1m5!1m4!1i17!2i66425!3i45220!4i256!2m3!1e0!2sm!3i501217730!2m3!1e2!6m1!3e5!3m17!2sfr!3sUS!5e18!12m4!1e68!2m2!1sset!2sRoadmap!12m3!1e37!2m1!1ssmartmaps!12m4!1e26!2m2!1sstyles!2zcC5zOi02MHxwLmw6LTYw!4e0&key=AIzaSyAheEGTDWv7q_5dMcztZIH9d18GvXtyB8E&token=89696	img	png	9,44 Ko	8,81 Ko
    200
    	GET	
    maps.googleapis.com	vt?pb=!1m5!1m4!1i17!2i66424!3i45220!4i256!2m3!1e0!2sm!3i501217730!2m3!1e2!6m1!3e5!3m17!2sfr!3sUS!5e18!12m4!1e68!2m2!1sset!2sRoadmap!12m3!1e37!2m1!1ssmartmaps!12m4!1e26!2m2!1sstyles!2zcC5zOi02MHxwLmw6LTYw!4e0&key=AIzaSyAheEGTDWv7q_5dMcztZIH9d18GvXtyB8E&token=124139	img	png	7,57 Ko	6,95 Ko
    200
    	GET	
    maps.googleapis.com	vt?pb=!1m5!1m4!1i17!2i66424!3i45219!4i256!2m3!1e0!2sm!3i501217730!2m3!1e2!6m1!3e5!3m17!2sfr!3sUS!5e18!12m4!1e68!2m2!1sset!2sRoadmap!12m3!1e37!2m1!1ssmartmaps!12m4!1e26!2m2!1sstyles!2zcC5zOi02MHxwLmw6LTYw!4e0&key=AIzaSyAheEGTDWv7q_5dMcztZIH9d18GvXtyB8E&token=115094	img	png	7,23 Ko	6,61 Ko
    200
    	GET	
    maps.googleapis.com	vt?pb=!1m5!1m4!1i17!2i66425!3i45219!4i256!2m3!1e0!2sm!3i501217730!2m3!1e2!6m1!3e5!3m17!2sfr!3sUS!5e18!12m4!1e68!2m2!1sset!2sRoadmap!12m3!1e37!2m1!1ssmartmaps!12m4!1e26!2m2!1sstyles!2zcC5zOi02MHxwLmw6LTYw!4e0&key=AIzaSyAheEGTDWv7q_5dMcztZIH9d18GvXtyB8E&token=80651	img	png	6,97 Ko	6,35 Ko
    200
    	GET	
    maps.googleapis.com	vt?pb=!1m5!1m4!1i17!2i66426!3i45219!4i256!2m3!1e0!2sm!3i501217730!2m3!1e2!6m1!3e5!3m17!2sfr!3sUS!5e18!12m4!1e68!2m2!1sset!2sRoadmap!12m3!1e37!2m1!1ssmartmaps!12m4!1e26!2m2!1sstyles!2zcC5zOi02MHxwLmw6LTYw!4e0&key=AIzaSyAheEGTDWv7q_5dMcztZIH9d18GvXtyB8E&token=46208	img	png	12,16 Ko	11,54 Ko
    200
    	GET	
    maps.googleapis.com	vt?pb=!1m5!1m4!1i17!2i66426!3i45220!4i256!2m3!1e0!2sm!3i501217730!2m3!1e2!6m1!3e5!3m17!2sfr!3sUS!5e18!12m4!1e68!2m2!1sset!2sRoadmap!12m3!1e37!2m1!1ssmartmaps!12m4!1e26!2m2!1sstyles!2zcC5zOi02MHxwLmw6LTYw!4e0&key=AIzaSyAheEGTDWv7q_5dMcztZIH9d18GvXtyB8E&token=55253	img	png	12,45 Ko (en compétition)	11,83 Ko
    200
    	GET	
    maps.googleapis.com	vt?pb=!1m5!1m4!1i17!2i66423!3i45220!4i256!2m3!1e0!2sm!3i501217730!2m3!1e2!6m1!3e5!3m17!2sfr!3sUS!5e18!12m4!1e68!2m2!1sset!2sRoadmap!12m3!1e37!2m1!1ssmartmaps!12m4!1e26!2m2!1sstyles!2zcC5zOi02MHxwLmw6LTYw!4e0&key=AIzaSyAheEGTDWv7q_5dMcztZIH9d18GvXtyB8E&token=27511	img	png	6,53 Ko	5,91 Ko
    200
    	GET	
    maps.googleapis.com	vt?pb=!1m5!1m4!1i17!2i66423!3i45219!4i256!2m3!1e0!2sm!3i501217730!2m3!1e2!6m1!3e5!3m17!2sfr!3sUS!5e18!12m4!1e68!2m2!1sset!2sRoadmap!12m3!1e37!2m1!1ssmartmaps!12m4!1e26!2m2!1sstyles!2zcC5zOi02MHxwLmw6LTYw!4e0&key=AIzaSyAheEGTDWv7q_5dMcztZIH9d18GvXtyB8E&token=18466	img	png	2,92 Ko	2,30 Ko
    200
    	GET	
    maps.googleapis.com	vt?pb=!1m5!1m4!1i17!2i66427!3i45219!4i256!2m3!1e0!2sm!3i501217730!2m3!1e2!6m1!3e5!3m17!2sfr!3sUS!5e18!12m4!1e68!2m2!1sset!2sRoadmap!12m3!1e37!2m1!1ssmartmaps!12m4!1e26!2m2!1sstyles!2zcC5zOi02MHxwLmw6LTYw!4e0&key=AIzaSyAheEGTDWv7q_5dMcztZIH9d18GvXtyB8E&token=11765	img	png	11,06 Ko	10,44 Ko
    200
    	GET	
    maps.googleapis.com	vt?pb=!1m5!1m4!1i17!2i66427!3i45220!4i256!2m3!1e0!2sm!3i501217730!2m3!1e2!6m1!3e5!3m17!2sfr!3sUS!5e18!12m4!1e68!2m2!1sset!2sRoadmap!12m3!1e37!2m1!1ssmartmaps!12m4!1e26!2m2!1sstyles!2zcC5zOi02MHxwLmw6LTYw!4e0&key=AIzaSyAheEGTDWv7q_5dMcztZIH9d18GvXtyB8E&token=20810	img	png	11,23 Ko	10,61 Ko
    200
    	GET	
    maps.googleapis.com	vt?pb=!1m5!1m4!1i17!2i66422!3i45220!4i256!2m3!1e0!2sm!3i501217850!2m3!1e2!6m1!3e5!3m17!2sfr!3sUS!5e18!12m4!1e68!2m2!1sset!2sRoadmap!12m3!1e37!2m1!1ssmartmaps!12m4!1e26!2m2!1sstyles!2zcC5zOi02MHxwLmw6LTYw!4e0&key=AIzaSyAheEGTDWv7q_5dMcztZIH9d18GvXtyB8E&token=48970	img	png	9,43 Ko	8,81 Ko
    200
    	GET	
    maps.googleapis.com	vt?pb=!1m5!1m4!1i17!2i66422!3i45219!4i256!2m3!1e0!2sm!3i501217850!2m3!1e2!6m1!3e5!3m17!2sfr!3sUS!5e18!12m4!1e68!2m2!1sset!2sRoadmap!12m3!1e37!2m1!1ssmartmaps!12m4!1e26!2m2!1sstyles!2zcC5zOi02MHxwLmw6LTYw!4e0&key=AIzaSyAheEGTDWv7q_5dMcztZIH9d18GvXtyB8E&token=39925	img	png	5,31 Ko	4,68 Ko
    200
    	GET	
    maps.googleapis.com	vt?pb=!1m4!1m3!1i17!2i66422!3i45219!1m4!1m3!1i17!2i66423!3i45219!1m4!1m3!1i17!2i66422!3i45220!1m4!1m3!1i17!2i66423!3i45220!1m4!1m3!1i17!2i66424!3i45219!1m4!1m3!1i17!2i66425!3i45219!1m4!1m3!1i17!2i66426!3i45219!1m4!1m3!1i17!2i66427!3i45219!1m4!1m3!1i17!2i66424!3i45220!1m4!1m3!1i17!2i66425!3i45220!1m4!1m3!1i17!2i66426!3i45220!1m4!1m3!1i17!2i66427!3i45220!1m4!1m3!1i17!2i66428!3i45219!1m4!1m3!1i17!2i66428!3i45220!2m3!1e0!2sm!3i501218030!3m17!2sfr!3sUS!5e18!12m4!1e68!2m2!1sset!2sRoadmap!12m3!1e37!2m1!1ssmartmaps!12m4!1e26!2m2!1sstyles!2zcC5zOi02MHxwLmw6LTYw!4e3!12m1!5b1&callback=_xdc_._5ev4mj&key=AIzaSyAheEGTDWv7q_5dMcztZIH9d18GvXtyB8E&token=129438	script	js	mis en cache	0 o
    200
    	GET	
    maps.googleapis.com	vt?pb=!1m5!1m4!1i17!2i66428!3i45219!4i256!2m3!1e0!2sm!3i501217730!2m3!1e2!6m1!3e5!3m17!2sfr!3sUS!5e18!12m4!1e68!2m2!1sset!2sRoadmap!12m3!1e37!2m1!1ssmartmaps!12m4!1e26!2m2!1sstyles!2zcC5zOi02MHxwLmw6LTYw!4e0&key=AIzaSyAheEGTDWv7q_5dMcztZIH9d18GvXtyB8E&token=108393	img	png	9,85 Ko	9,23 Ko
    200
    	GET	
    maps.googleapis.com	vt?pb=!1m5!1m4!1i17!2i66428!3i45220!4i256!2m3!1e0!2sm!3i501217730!2m3!1e2!6m1!3e5!3m17!2sfr!3sUS!5e18!12m4!1e68!2m2!1sset!2sRoadmap!12m3!1e37!2m1!1ssmartmaps!12m4!1e26!2m2!1sstyles!2zcC5zOi02MHxwLmw6LTYw!4e0&key=AIzaSyAheEGTDWv7q_5dMcztZIH9d18GvXtyB8E&token=117438	img	png	10,77 Ko	10,14 Ko
    59 requêtes
    762,33 Ko / 221,58 Ko transférés
    Terminé en : 23,20


    à priori, aucune erreur

  6. #6
    Rédacteur/Modérateur

    Bonjour,

    Code :Sélectionner tout -Visualiser dans une fenêtre à part
          url: 'index.php',


    Sans savoir le traitement prévu dans index.php...
    Normal que ça affiche tout le contenu.
    "Si tu suis le chemin qui s'appelle « plus tard », tu arriveras à la place qui s'appelle « jamais »."
    François Camille Prévot (1910-1996), instituteur puis Directeur d'école et... mon grand-père.
    "Pose ta question, tu seras idiot une seconde. Ne la pose pas, tu seras idiot toute ta vie."
    Albert Einstein (1879-1955).
    Mes tutos DVP
    Gestion-Affichage de Nouvelles
    Affichage en tableau HTML
    Fonctions de redimensionnement d'images

  7. #7
    Membre à l'essai
    jreaux69, c'est le comportement de mon code lorsque je ne précise pas le dataType, ce qui n'est pas une bonne pratique de toutes façons.
    Et puis, même quand je change d'url,
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    console.log(data)
    affiche toujours le contenu HTML) de "index.php".

    Quand je renseigne le dataType, l'appel ajax m'indique qu'il y a une erreur ...Mais je sais pas où (en résumé, mon post ajax ne réussit même pas)

    En ce qui concerne l'onglet Réseau dans l'outil développeur, est-ce normal que se soit écris GET au lieu de POST ?

  8. #8
    Rédacteur/Modérateur

    Tu n'as toujours pas dit ce que cette fonction Ajax est censée renvoyer/afficher, ni quel est le traitement attendu dans index.php.
    "Si tu suis le chemin qui s'appelle « plus tard », tu arriveras à la place qui s'appelle « jamais »."
    François Camille Prévot (1910-1996), instituteur puis Directeur d'école et... mon grand-père.
    "Pose ta question, tu seras idiot une seconde. Ne la pose pas, tu seras idiot toute ta vie."
    Albert Einstein (1879-1955).
    Mes tutos DVP
    Gestion-Affichage de Nouvelles
    Affichage en tableau HTML
    Fonctions de redimensionnement d'images

  9. #9
    Membre à l'essai
    Ah désolé désolé!

    La fonction ajax est censée envoyer les coordonnées géographique de l'utilisateur qui visite la page (latitude et longitude).
    En ce qui concerne le code de récupération en PHP, j'aurais aimé les récupérer dans un objet php, mais pour l'instant je me contente juste de vérifier que les infos ont bien été envoyées,
    Code php :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    if(isset($_POST)){
     
    var_dump($_POST);
     
    }
    else{
     
    echo "cette variable n'existe pas";
     
    }

  10. #10
    Membre émérite
    Renomme index.php, en index1.php (ou comme tu veux...), l'essentiel c'est de ne pas mettre index.php parce que ce nom est réservé au serveur pour afficher la page par défaut.

    Citation Envoyé par Stev_k Voir le message
    En ce qui concerne le code de récupération en PHP, j'aurais aimé les récupérer dans un objet php
    Dans ce cas tu dois utiliser dataType:"json" et ton appel ajax devrait être :
    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
     
    $.ajax({
       url:"index1.php",
       method:"post",
       dataType:"json",
       data: {
    	userLat : userLat,
    	userLong : userLong
        },
        success: function(data){
    	console.log("Latitude :"+data.lat+", Longitude :"+data.long);
        },
         error:function(err){
    	alert('Erreur ajax :',err.responseText);
         }  
    });


    Puis le fichier php ne doit contenir aucun echo ni var_dump. Seulement la dernière echo json_encode qui doit y apparaître :
    Code php :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    $reponse=[];
    if(isset($_POST['userLat'],$_POST['userLong'])){
    	$reponse["lat"]=$_POST['userLat'];
    	$reponse["long"]=$_POST['userLong']; 
    }
    else{
    	$reponse[]="L'un ou les deux variables n'existent pas";
    }
    echo json_encode($reponse);

  11. #11
    Membre à l'essai
    Yeeeeeeess ^^

    Le contenu de la fonction success s'affiche enfin, dans la console du navigateur .
    Par contre, dans la page index1.php j'obtiens "ces variables n'existent pas".

    Malgré ça, le code fonctionnement parfaitement !!! Merci !!!!!!!!!!!

    Pour aller jusqu'au bout de mon projet (afficher les coordonnées géographiques de l'utilisateur sur la page principale)

    J'ai ajouté des variables session dans index1.php
    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
    <?php
    session_start();
     
    $reponse;
    if(isset($_POST['userLat'],$_POST['userLong'])){
            $reponse["lat"]=$_POST['userLat'];
            $reponse["long"]=$_POST['userLong']; 
     
            $_SESSION['lat'] = $reponse["lat"]; 
            $_SESSION['long'] =$reponse["long"]; 
    }
    else{
            $reponse[]="ces variables n'existent pas";
    }
    echo json_encode($reponse);
     
    ?>


    Ensuite, je les affiche sur la page index.php
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    echo($_SESSION['lat'].'&'.$_SESSION['long']);


    J'obtiens un message d'erreur m'indiquant que les variables lat et long sont non définies .
    Il faut que j'aille sur index1.php pour qu'une fois revenu sur index.php, les variables session affichent la latitude et la longitude.
    Comment je pourrais faire pour afficher le contenu de ces variables sur index.php sans avoir à aller dans index1.php ?

  12. #12
    Membre émérite
    Ne mélange pas les choses, oublis la variable globale $_SESSION et utilise les variables reçues dans success d'ajax.

    Supposons que tu as un <div id="ajaxReponse"></div> dans lequel tu voudrais afficher le retour d'ajax, il suffit de mettre :
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    success:function(data){
        $("#ajaxReponse").html("Latitude :"+data.lat+", Longitude :"+data.long);
    }


    Et c'est tout.

  13. #13
    Membre à l'essai
    ça marche nickel !!

    Mais sais-tu si c'est possible de récupérer le résultat de cette fonction success dans une variable PHP afin de l'utiliser dans une requête SQL ?
    J'aimerais personnaliser l'affichage de mon site en fonction de la position du visiteur. Pour réussir ça, je me suis dis qu'il fallait stocker la position du visiteur (latitude et longitude) dans un objet PHP, puis faire un if après les résultats d'un SQL SELECT * . Vu que dans ma BDD je stocke déjà les positions géographiques des utilisateurs qui publient une annonce via le formulaire, mon if portera sur la valeur de la différence (latitude_du_visiteur - latitude_en_BDD & longitude_du_visiteur - longitude_en_BDD ) en valeur absolu. Je pourrais alors comparer ces distance à 500 par exemple si je veux que le visiteur voit des annonces publiées dans un périmètre de 500m autour de lui.

    Pardon si je t'en, demande trop mais j'aurais quelques questions:

    1)Est-ce que j'ai le bon raisonnement ?
    2)Si oui, comment stocker le résultat de l'appel dans une variable php que je pourrai exploiter sur index.php ?

    Merci encore

  14. #14
    Membre émérite
    Citation Envoyé par Stev_k Voir le message

    1)Est-ce que j'ai le bon raisonnement ?
    Oui.

    Citation Envoyé par Stev_k Voir le message

    2)Si oui, comment stocker le résultat de l'appel dans une variable php que je pourrai exploiter sur index.php ?
    Si tu veux que ton $.ajax soit efficace, il va falloir utiliser ton script index1.php pour récupérer les lignes (annonces) ayant la condition vraie de la requête SQL, (exemple à développer avec l'api PDO ) :
    Code php :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    $db=new PDO("....");//un block try catch est mieux...
    $reponse=[];
    $req="select * from table 
         where 
         /* Attention : between 0 et 500 : si jamais les valeurs de userLong/userLat  sont inférieures à celles de longitude/latitude en BDD , l'annonce ne sera pas sélectionnée ? */
          :userLong - longitude between 0 and 500 
          and :userLat - latitude  between 0 and 500";
    $prepared=$db->prepare($req);
    $prepared->execute([":userLong"=>$_POST["userLong"],":userLat"=>$_POST["userLat"]]);
    while($d=$prepared->fetch(PDO::FETCH_ASSOC)){
         $reponse["annonces"][]=["id_annonce"=>$d["id"],"titre_annonce"=>$d["titre"]];
    }
    echo json_encode($reponse);


    Après dans success d'ajax, il te reste de parcourir le tableau data.annonces pour construire le html avec les données puis l'intégrer dans un <div id="listeAnnonces"></div> qui appartient à ta page index :

    Solution 1 :

    Code javascript :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    success:function(data){
           $.each(data.annonces,function(index,annonce){
                $("#listeAnnonces").append("<div>"
                    +"<p>Titre de l'annonce :"+annonce.titre_annonce+"</p>"
                    +"<p>Id annonce :"+annonce.id_annonce+"</p>"
                +"</div>");
           });
    }


    Solution 2 :
    Ou bien construire le html en php au lieu de js :
    Code php :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    while($d=$prepared->fetch(PDO::FETCH_ASSOC)){
         $reponse["annonces"][]="<div><p>Titre annonce :".$d["titre_annonce"]."</p><p>Id annonce :".$d["id_annonce"]."</p></div>";
    }


    Et success :
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    success:function(data){
           $.each(data.annonces,function(index,annonce){
                $("#listeAnnonces").append(annonce);
           });
    }

  15. #15
    Membre à l'essai
    Je vais me pencher là dessus et je suis certain que tout ira pour le mieux!

    Milles merci Toufik83 !!! Merci d'avoir pris sur ton temps pour aider un parfait inconnu . Sujet résolu !!!

  16. #16
    Membre à l'essai
    Salut Toufik83 !

    J'ai testé ton code : Concernant la solution de construction du HTML avec PHP, j'obtiens une message d'erreur Undefined variable: prepared
    Dans la page index.php je dois faire une requête SELECT et stocker son résultat dans $prepared ?

    Concernat la seconde méthode, la fonction error du code ajax est déclenchée Erreur ajax:

    Portant, il ne me semble pas avoir commis d'erreur dans le code PHP d'index1:
    Code php :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
    <?php
     
    if(isset($_POST['userLat'] , $_POST['userLong']) ){
     
     
    try
    {
      $bdd = new PDO('mysql:host=localhost;port=3308;dbname=mabdd;charset=utf8', 'root', '');
    }
    catch(Exception $e)
    {
            die('Erreur : '.$e->getMessage());
    }
     
    $reponse=[];
     
    $rep = 'SELECT ID FROM table_test_annonces WHERE ABS(:userLong - Longitude) BETWEEN 0 AND 500 AND ABS(:userLat - Latitude) BETWEEN 0 AND 500';
     
     
    $prepared=$bdd->prepare($req);
    $prepared->execute([":userLong"=>$_POST["userLong"],":userLat"=>$_POST["userLat"]]);
     
     
    while($d=$prepared->fetch(PDO::FETCH_ASSOC)){
         $reponse["annonces"][]=["id_annonce"=>$d["ID"]];
        }
    echo json_encode($reponse);
     
    }
    else{
                 echo "Les variables n'existent pas";
     
    }
     
     
     
    ?>

    J'ai le message m'indiquant que les variables n'existent pas quand je vais dans index1.php .

    Mon adaptation du code de la fonction succes:
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    success:function(data){
           $.each(data.annonces,function(index,annonce){
                $("#listeAnnonces").append("<div><p>Id annonce :"+annonce.id_annonce+"</p></div>");
           });
                   }

  17. #17
    Membre émérite
    Salut,

    1- n'oublis pas que tu gères les messages dans un tableau php .

    2- $rep = "...." par contre tu mets : ->prepare($req);, $rep n'est pas $req

    3- je t'avais dis qu'il ne faut pas écrire un echo dans ton script appart celui de json_encode() :
    Code php :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    catch(Exception $e)
    {
            $reponse["ErreurConnectDatabase"]=$e->getMessage();
    }


    Puis :

    Code php :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    else{
                 $reponse[]= "Les variables n'existent pas";
     }
    echo json_encode($reponse);// cette echo doit être en fin de script !


    Si tu reçois une erreur dans le callback error d'ajax, cela veut dire qu'il y a une erreur dans ton script php.

    Tu reçois toujours les variables n'existent pas dans le success d'ajax ?

  18. #18
    Membre à l'essai
    Ça marche !!

    En tenant compte de tes remarques (ne pas faire un echo dans index1 , ecrire echo json_encode($reponse); , le code aurait du marcher.
    Le truc de débile que j'ai fait c'est qu'en apportant les modifs que tu m'a indiqué, j'ai aussi introduit une erreur d'inattention en écrivant "$bdd" au lieu de "$d" dans le while (je l'ai laissé tel quel dans le code plus bas, pour que tu puisse le voir... )


    Code PHP :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
    <?php
    if(isset($_POST['userLat'],$_POST['userLong'])){
     
    try{
     
    $bdd = new PDO('mysql:host=localhost;port=3308;dbname=mabdd', 'root', '',
        array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION));
     
    }
     
    catch (Exception $e)
    {
            $reponse["ErreurConnectDatabase"]=$e->getMessage();
    }
     
    $reponse=[];
    $req = 'SELECT ID FROM table_test_annonces WHERE ABS(:userLong - Longitude) BETWEEN 0 AND 500 
          AND ABS(:userLat - Latitude)  BETWEEN 0 AND 500';
    $prepared=$bdd->prepare($req);
    $prepared->execute([":userLong"=>$_POST["userLong"],":userLat"=>$_POST["userLat"]]);
    while($bdd=$prepared->fetch(PDO::FETCH_ASSOC)){  //l'erreur était ici
         $reponse["annonces"][]=["id_annonce"=>$d["ID"]];
                                                 }
     
        }else{
     
    	$reponse[]= "Les variables n'existent pas";
    }
     
     
    echo json_encode($reponse); 
     
    ?>

  19. #19
    Membre à l'essai
    Il manque plus que la deuxième solution que j'aimerais aussi comprendre mais ça s'est facultatif

    Merci!!

  20. #20
    Membre émérite
    Pour les erreurs, tu ne vois pas le message dans le callback error d'ajax ?
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    error:function(erreur){
         alert("Erreur Ajax :"+erreur.responseText);// lorsque tu met dataType:"json", l'erreur devient un objet, et le message est enregistré dans responseText 
    }


    La deuxième solution consiste à créer le html de chaque enregistrement et le stocker dans un nouveau index du tableau $reponse["annonces"], comme ça tu n'as pas besoin de gérer l'html dans javascript.
    Code php :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    while($d=$prepared->fetch(PDO::FETCH_ASSOC)){
         $reponse["annonces"][]="<div><p>Titre annonce :".$d["titre_annonce"]."</p><p>Id annonce :".$d["id_annonce"]."</p></div>";
    }


    Maintenant supposons que tu as plusieurs annonces dans la table (200 par exemple), avec le script actuel elles seront toutes ajoutées dans le <div>, et ça je pense que tu dois le gérer pour optimiser le chargement, les afficher 10 par 10 par exemple...

    Remarque : Il faut que la variable $reponse soit déclarée tout au début du script :
    Code php :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    $reponse=[];
    if(isset($_POST['userLat'],$_POST['userLong'])){...}