2017-10-23 3 views
1

Ich habe Post Ajax Anfrage in Vanille Javascript, funktioniert alles gut, aber ich muss eine Variable form_data hinzufügen, die an php gesendet werden. Zum Beispiel ist die Variable apple = 1 bereits in form_data. Ich muss orange = 2 hinzufügen, aber ich kann es nicht in meiner HTML-Form tun. Mein js Code ist unten:Hinzufügen von Variablen zu Ajax Post in Vanille Javascript

function button_publish_ajax(variable){ 
    var form = document.getElementById("form-buttons"); 
    var form_data = new FormData(form); 
     for ([key,value] of form_data.entries()){ 
     console.log(key + ': '+value); 
     } 
    var action = form.getAttribute("action");     
    var xhr = new XMLHttpRequest(); 
    xhr.open('POST', action, true); 
    xhr.overrideMimeType('text/xml; charset=UTF-8'); 
    xhr.setRequestHeader('X-Requested-With', 'XMLHttpRequest'); 
    xhr.onreadystatechange = function(){ 
    if (xhr.readyState == 4 && xhr.status == 200){ 
     var result = xhr.responseText; 
     console.log("Result:" + result); 
    } 
    }; 
    xhr.send(form_data); 
    } 

Fazit: Ich möchte orange=1 hinzuzufügen form_data. Weiß jemand wie? Meine primäre Absicht war es, Informationen hinzuzufügen, auf welche Schaltfläche geklickt wurde, um AJAX-Funktionen in PHP zu unterscheiden. Mein HTML-Code ist unter:

<form method="post" action="cms_offers_button.php" id="form-buttons"> 
    <input type="hidden" name="offer_list" value="12"> 
    <input name="PublishListItem" type="button" class="btn btn-info offer-publish" value="Publish" id="publish-12" style="display: none;"/> 
    <input name="WithdrawListItem" type="button" class="btn btn-info offer-withdraw" value="Withdraw" id="withdraw-12"/> 
    <input name="EditListItem" type="button" class="btn btn-default offer-edit" value="Edit" id="edit-12" /> 
    <input name="DeleteListItem" type="button" class="btn btn-danger offer-delete" value="Delete" id="delete-12"/> 

Antwort

3

hinzufügen es mit append() Funktion wie:

//form_data.append(name, value); 

form_data.append('orange',2); 

Hoffnung, das hilft.

+0

Anfügen von Formulardaten, bessere Praxis als die Verwendung versteckter Eingabefelder? sie scheinen beide genau dasselbe zu tun. Versteckte Eingabefelder: https://stackoverflow.com/questions/7324950/whats-the-point-of-having-hidden-input-in-html-what-are-common-uses-for-this –

+0

Das hängt von der ab Fall .. Wenn der Wert statisch hinzugefügt oder von Serverseite –

+0

übergeben wird, funktioniert das, danke! – gileneusz

Verwandte Themen