2010-12-04 33 views
0

J'ai une expérience assez limitée avec AJAX et javascript alors j'espère que c'est plus facile que ça l'a été pour moi. Je suis en train de créer un formulaire de téléchargement simple, en envoyant simplement des données à partir d'un formulaire, puis au js, puis l'envoyer au php. essentiellement dans le code HTML (qui est généré à partir d'une page php):Aide à l'envoi de plusieurs arguments dans ajax php?

<form id="form" method="post" onsubmit="return ajaxSubmit(this)" action="#"> 
<input name="data1" type="file"/> 
<input type="submit" value="Go"/> 

et les js:

function ajaxSubmit(thisform) { 
    results=GetXmlHttpObject(); 
    var submitdata =""; 
    submitdata = "uploadfile=" + thisform.elements['data1'].value 
results.onreadystatechange=uploadResult; 
    results.open("POST", "./functions/upload.php",true); 
    results.send(formdata); 

(j'ai dépouillé une partie du code pour le rendre plus court) I J'ai aussi besoin d'envoyer une variable php, donc j'imagine que je pourrais écrire l'appel de la fonction en tant que onsubmit = "return songUploadSubmit (this,". $ phpvariable. ") mais je ne sais pas comment l'extraire du javascript. J'ai besoin de savoir, simplement je suppose, comment tirer $ phpvariable et l'amadouer à la fin de la variable submitdata ou si je vais à l'envers .. Je vous remercie!

Répondre

0

eu à travailler:

en html:

return ajaxSubmit(this, $phpvariable) 

dans JScript:

function songUploadSubmit(thisform, otherdata) 
submitdata = "data1=" + thisform.elements['data1'].value + "&data2=" + otherdata; 

alors je peux saisir à la fois avec _POST dans le fichier php.

Dans l'ensemble, il manque simplement certains fondamentaux comme je le soupçonnais. Passer plusieurs arguments.

+0

Avec jQuery, votre * data * ne serait que {{data1: thisform.elements ['data1']. Value, data2: otherdata} 'sans avoir besoin de se soucient du contenu et de leur fuite (si votre valeur data1 contient un & qui causera des problèmes en ce moment) – ThiefMaster

1

Vous ne pouvez pas télécharger de fichiers via AJAX.

'somefield=somevalue&otherField=othervalue' est ce que vous voulez soumettre plusieurs paires clé = valeur.

Cependant, utilisation jQuery ou un autre cadre si vous allez faire AJAX - sinon vous devez prendre soin d'url échapper, etc. sur votre propre (utiliser escape(value) au lieu de value) et votre code ressemble beaucoup plus laid .

+0

Le téléchargement se fait via PHP, évidemment pas avec w/ajax;) – Damon