Hej! Mitt råd är att använda något javascript-ramverk för detta, då implementationen av XHR är lite olika i diverse browsers. ok, tack för snabbt svar. Antar att du menar jquery eller annat. Har du annars förslag på hur man skickar file-kontroll med ajax, utan jquery? Du skickar inte file med ajax, använd en iframe. FormData verkar inte vara implementerat i IE9 iaf.. Har du bra exempel på iframelösning? De lösningar jag har sett förklarar inte så bra hur man detekterar när filladdningen är klar så scriptet kan fortsätta med nästa sak. Ok, här är en snutt som fungerar om någon annan vill testa "ajax" med filuppladdning.AJAX med php
Lika mycket en php-fråga som javascript men ni brukar fixa det ändå.
Har nyligen, med glädje, upptäckt AJAX men har nu problem att skicka ett formulär. Detta ska fungera enligt flera sidor på nätet:
var form = document.getElementById("myform");
var formData = new FormData(form);
xmlhttp.open("POST", "till.php", true);
xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded; charset=UTF-8");
xmlhttp.send(formData);
på php-sidan fungerar varken $_POST[], $_GET[] eller $_REQUEST[]. Data skickas för när jag kollar $HTTP_RAW_POST_DATA visar formuläret i "binär" form.
Hur fångar jag upp formulärets kontroller på php-sidan?
Sv: AJAX med php
new FormData har jag faktiskt aldrig stött på tidigare heller, verkar vara ett Mozilla-påhitt?Sv:AJAX med php
FormData ska vara implementerat i alla vanliga browsers.Sv: AJAX med php
Sv:AJAX med php
Fick FormData att fungera. Man ska inte definera setRequestHeader. Utan den raden fungerar det. Dock inte med IE men "alla" andra läsare med senaste versionen, både i Mac och Windows. Testade Chrome, Firefox och Safari. Väldigt smidigt att skicka sina vanliga formulär med ajax. Man kan också skapa tomma formulär med "fd = new FormData()" och sedan lägga till egna kontroller med fd.append(...). Smidigt.Sv: AJAX med php
<html>
<head>
<script language=''''javascript''''>
function my_ajax() {
document.getElementById(''''myform'''').target = ''''hidden_iframe'''';
document.getElementById(''''myform'''').action = ''''to.php'''';
obj=document.getElementById("hidden_iframe");
obj.onload = function() {
responseText=obj.contentWindow.document.body.innerHTML;
// ...
};
document.myform.submit();
document.getElementById(''''myform'''').target = '''''''';
document.getElementById(''''myform'''').action = '''''''';
}
</script>
</head>
<body>
<form id="myform" name="myform" method="post" enctype="multipart/form-data">
<input name="file" id="file" size="27" type="file"><br>
<input type="button" name="action" value="Upload" onClick="my_ajax()"><br>
<iframe id="hidden_iframe" name="hidden_iframe" src="" style="width:0;height:0;border:0px solid #000;"></iframe>
</form>
</body>
</html>