2016-10-07 2 views
1

Ich habe Schwierigkeiten, eine GET-Variable in eine JQuery-Datei übergeben.Verwenden einer dynamischen Variable in einer Ajax-Abfrage

Mein Code ist

function upload(files){ // upload function 
     var fd = new FormData(); // Create a FormData object 
     for (var i = 0; i < files.length; i++) { // Loop all files 
      fd.append('file_' + i, files[i]); // Create an append() method, one for each file dropped 
     } 
     fd.append('nbr_files', i); // The last append is the number of files 

     $.ajax({ // JQuery Ajax 
      type: 'POST', 
      url: 'ajax/tuto-dd-upload-image.php?order=5', // URL to the PHP file which will insert new value in the database 
      data: fd, // We send the data string 
      processData: false, 
      contentType: false, 
      success: function(data) { 
       $('#result').html(data); // Display images thumbnail as result 
       $('#dock').attr('class', 'dock'); // #dock div with the "dock" class 
       $('.progress-bar').attr('style', 'width: 100%').attr('aria-valuenow', '100').text('100%'); // Progress bar at 100% when finish 
      }, 
      xhrFields: { // 
       onprogress: function (e) { 
        if (e.lengthComputable) { 
         var pourc = e.loaded/e.total * 100; 
         $('.progress-bar').attr('style', 'width: ' + pourc + '%').attr('aria-valuenow', pourc).text(pourc + '%'); 
        } 
       } 
      }, 
     }); 

ich die 5 in url: 'ajax/tuto-dd-upload-image.php?order=5' müssen die vatriable order über eine URL wie domain.com/?order=XX

+0

YRU nicht das Hinzufügen eines oder 'value = "<= $ _ GET [ 'bestellt']?>"' – devpro

Antwort

4

weitergegeben werden Sie PHP verwenden können, und exportieren Sie die Variable:

var orderId = <?php echo json_encode($_GET['order']); ?>; 

function upload(files) { 
    ... 
    url: 'ajax/tuto-dd-upload-image.php?order=' + orderId, 

Oder Sie könnten es direkt in Javascript analysieren:

var orderId = self.location.search.match(/order=(\d+)/)[1]; 

// Then continue like the previous example 

Natürlich werden Sie wahrscheinlich eine Fehlerüberprüfung benötigen, wenn es eine Chance gibt, dass der GET-Parameter jemals fehlt.

+0

Danke - funktioniert perfekt. – Ben

+0

Ich versuchte gestern, aber es gab ein Zeitlimit für die Kennzeichnung der Antwort. Markierte es jetzt. Danke noch einmal. – Ben

0

Versuchen mit javascript:

function $_GET(key){ 
    var result = new RegExp(key + "=([^&]*)", "i").exec(window.location.search); 
    return result && result[1] || ""; 
} 

und $_GET(key) Funktion in Ihrem $.ajax Anfrage nennen.

var order = $_GET('order'); 
url: 'ajax/tuto-dd-upload-image.php?order='+order, 
Verwandte Themen