Return array en Ajax

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Return array en Ajax

Re: Return array en Ajax

par Kraim88 » 23 oct. 2014, 09:24

Merci pour tes réponses.
Elle m'ont permis de m'onrienté sur la bonne voie. Voici mon code:

[javascript] $.ajax({

url: "_module/ExportFichier/exportFile/ajax/requestAllColumns.php",
type: "POST",
data: "table="+ table,
dataType: 'json',

success: function(data){
console.log('The Ajax request WORKS!');

$('#columns').css('display','block');
$('#columns-check').empty();

for (var key in data) {
if (data.hasOwnProperty(key)) {
var id = Math.random();
$('#columns-check').prepend('<div style="display: inline-block; margin: 20px 20px 20px 0;"><input type="checkbox" id="'+id+'" class="field" value="'+data[key]+'" style="display: inline-block; margin:0 5px -1px 0;"><label for="'+id+'" class="field" style="display: inline-block;">'+data[key]+'</label></div>');
}
}
},

error: function(){
console.log('The Ajax request did not works!');
}
});[/javascript]

Re: Return array en Ajax

par Aureusms » 17 oct. 2014, 10:31

Après tu l'affiches directement à partir de l'Ajax.

[javascript]function selectTable(table){
var table = $("#listTable").val();

$.ajax({
url: "_module/ExportFichier/exportFile/ajax/requestColumns.php",
type: "POST",
data : {table : table},
cache : false,
complete : function (xhr, result) {
dureeSession = dureeSessionDefault;
if (result != "success") {
$('.span12').prepend('<p>Si tu vois ce message, il y a eu un problème dans la réponse du serveur</p>');
return;
}
var reponse = xhr.responseText;
$(reponse).prependTo('.span12');
$('.span12').prepend('<p>Voilà tes données sont injectées...</p>');
}
});
}[/javascript]

Re: Return array en Ajax

par Kraim88 » 17 oct. 2014, 09:27

Ok merci.

Mais maintenant comment je peut utiliser ce tableau pour l'afficher sur ma page php qui contient ma liste. J'ai du mal à comprendre le concept
<div class="row">
    <div class="span12">
        <select id="listTable" name="listTable">
            <option value="toto">Toto</option>
            <option value="titi">Titi</option>
         </select>
    </div>
</div>

<div class="row">
    <div class="span12">
         <button class="btn btn-primary" onClick="selectTable()">Select</button>
    </div>
</div>
<script type="text/javascript" src="_module/ExportFichier/exportFile/ajax/requestExport.js"></script>

Re: Return array en Ajax

par Aureusms » 17 oct. 2014, 08:37

Bonjour,

Essayes de développer sous firefox avec le module firebug : il t'indiqueras les erreurs de ton code.
Pour ton code, essaye que data doit être sous forme d'objet :
[javascript]
data : {table : table}[/javascript]
et ajoute var a ta définition de variable :
[javascript]var table = $("#listTable").val();[/javascript]


[javascript]function selectTable(table){
var table = $("#listTable").val();

$.ajax({
url: "_module/ExportFichier/exportFile/ajax/requestColumns.php",
type: "POST",
data : {table : table},
dataType: 'json'
});
}[/javascript]

Sinon je crois que c'est bon.

Return array en Ajax

par Kraim88 » 16 oct. 2014, 17:35

Salut,

J'ai une fonction qui fait un appel Ajax Jquery.

[javascript]function selectTable(table){
table = $("#listTable").val();

$.ajax({
url: "_module/ExportFichier/exportFile/ajax/requestColumns.php",
type: "POST",
data: "table=" + table,
dataType: 'json'
});
}[/javascript]
requestColumns.php
header("content-type: application/json; charset=utf-8");

$tableName = $_POST["table"];

$objService = new ExportFileService($tableName);
$columns = $objService->get_columns();

echo json_encode($columns);
$columns contient un tableaux de donnée.

Je suis nouveau en ajax. Je n'ai pas compris comment renvoyer mon tableau à ma fonction Js, puis comment par la suite accéder à ce tableau dans mon code php principale.

Merci d'avance pour votre aide.