2010-04-14 5 views
0

Le problème
Je Tring à faire une demande de paiement ajax à un script PHP, mais j'ai un problème pour obtenir les données dans le format que le PHP attend ce, PHP s'attend les données à venir en tant que tableau dans un tableau comme quelque chose,Aide avec une requête AJAX

Array 
(
    [cv_file] => Array 
     (
      [849649717] => Y 
      [849649810] => Y 
     ) 

    [save] => Save CVs 
) 

Qu'est-ce que j'essayé?

J'ai essayé dans mon javascript pour créer un tableau vide et l'utiliser comme la clé du tableau, quelque chose comme ça,

var cv_file = new Array(); 
$(".drag_check").draggable({helper:"clone", opacity:"0.5"}); 
$(".searchPage").droppable({ 
    accept:".drag_check", 
    hoverClass: "dropHover", 
    drop: function(ev, ui) { 
     var droppedItem = ui.draggable.children(); 
     cv_file = ui.draggable.children().attr('name'); 
     var link = ui.draggable.children().attr('name').substr(ui.draggable.children().attr('name').indexOf("[")+1, ui.draggable.children().attr('name').lastIndexOf("]")-8) 
     $.ajax({ 
      type:"POST", 
      url:"/search", 
      data:cv_file+"&save=Save CVs", 
      success:function(){ 
       alert(cv_file) 
       $('.shortList').append('<li><input type="checkbox" value="Y" class="checkbox" name="remove_cv['+link+']"/><a href="/cv/'+link+'">'+link+'</a></li>'); 
      }, 
      error:function() { 
       alert("Somthing has gone wrong"); 
      } 
     }); 

    } 
}); 

Ma question

Comment puis-je obtenir les données en le format que le PHP attend, j'apprécierais toute aide que n'importe qui peut donner?

Modifier
En alertant ce que l'affiche dans les commentaires m'a suggéré oici,

cv_file[849649717]&save=Save CVs

Merci

+1

Alertez le résultat de l'expression suivante avant le POST et modifiez votre question avec les résultats. 'cv_file +" & save = Enregistrer les CV "' - c'est-à-dire 'window.alert (cv_file +" & save = Enregistrer les CV ");' ' –

+0

a ajouté l'alerte à mon exemple –

Répondre

0

Vous pouvez stringify votre Array/Object, puis effectuez une json_decode du côté PHP pour convertir la chaîne en un tableau.

EDIT: maintenant avec la fonction PHP correcte.

1

Pour obtenir les résultats dans un tableau PHP dans le fichier PHP back-end, vous devez créer une chaîne comme suit pour POST au serveur:

cv_file[]=849649717&cv_file[]=849649810&save=Save CVs 

Je ne pense pas que vous pouvez créer un tableau associatif en utilisant cette méthode, mais vous devez donner au-dessus d'un tableau comme suit dans le $_POST:

Array 
(
    [cv_file] => Array 
     (
      0 => 849649717 
      1 => 849649810 
     ) 

    [save] => Save CVs 
) 

Ensuite, vous pouvez juste faire un foreach:

foreach ($_POST['cv_file'] as $cv) 
{ 
    // Do something with $cv; 
}