2017-09-07 1 views
0

Ich arbeite an einer Datei Drag & Drop und möchte die gleiche PHP-Seite verwenden. Ich möchte die PHP-Skript-Seite mit einer Aktion Variable auslösen, so dass es in die folgenden if-Anweisung gehen:Ajax-Parameter an PHP-Skript senden

.. 
elseif ($_POST['action'] == 'uploadFile') 
{ 
    TrackEvent('CHANNEL_ACTIVATE'); 

    echo "upload file"; 
} 

ich einen Ajax-Aufruf, die ausgelöst wird, mit ondrop:

var data = new FormData(); 
data.append('action', 'uploadFile'); 

var request = new XMLHttpRequest(); 
request.onreadystatechange = function(){ 
    if(request.readyState == 4){ 
     try { 
      var resp = JSON.parse(request.response); 
     } catch (e){ 
      var resp = { 
       status: 'error', 
       data: 'Unknown error occurred: [' + request.responseText + ']' 
      }; 
     } 
     console.log(resp.status + ': ' + resp.data); 
    } 
}; 

request.open('POST', 'channelEdit.php'); 
request.send(data); 

    $(this).unbind('click').click(function (e) { 
    }); 


$("#fileList").trigger("click"); 
+0

OK, also was ist dein Problem – RiggsFolly

+0

Ich möchte einen Parameter senden, um die if-Anweisung im PHP-Skript auszulösen. Im Moment passiert das nicht. – user3565164

Antwort

0

, während Sie Post-Daten in ajax-Senden haben Sie setRequestHeader in Anfrage

so Ihr Skript wie unten hinzufügen ändern:

var data = new FormData(); 
data.append('action', 'uploadFile'); 

var request = new XMLHttpRequest(); 
request.open('POST', 'channelEdit.php'); 
request.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); //<------Add this line 

request.onreadystatechange = function(){ 
    if(request.readyState == 4){ 
     try { 
      var resp = JSON.parse(request.response); 
     } catch (e){ 
      var resp = { 
       status: 'error', 
       data: 'Unknown error occurred: [' + request.responseText + ']' 
      }; 
     } 
     console.log(resp.status + ': ' + resp.data); 
    } 
};  

request.send(data); 

    $(this).unbind('click').click(function (e) { 
    }); 


$("#fileList").trigger("click"); 
+0

Funktioniert immer noch nicht :( – user3565164

+0

Erhalte einen Fehler in der Konsole? –

+0

Fehler beim Ausführen von 'setRequestHeader' auf 'XMLHttpRequest': Der Status des Objekts muss geöffnet sein. – user3565164