Un esempio funzionante vale più di mille parole…
index.html:
register.php:codice:<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <title>Sending forms with FormData – MDN</title> <script type="text/javascript"> "use strict"; function ajaxSuccess () { alert(this.responseText); } function AJAXSubmit (oFormElement) { if (!oFormElement.action) { return; } var oField, sFieldType, nFile, oReq = new XMLHttpRequest(), sSearch = "", sMethod = oFormElement.method.toUpperCase(), bIsPost = sMethod === "POST"; oReq.onload = ajaxSuccess; for (var nItem = 0; nItem < oFormElement.elements.length; nItem++) { oField = oFormElement.elements[nItem]; if (!oField.hasAttribute("name")) { continue; } sFieldType = oField.nodeName.toUpperCase() === "INPUT" ? oField.getAttribute("type").toUpperCase() : "TEXT"; if (sFieldType === "FILE") { for (nFile = 0; nFile < oField.files.length; sSearch += "&" + escape(oField.name) + "=" + escape(oField.files[nFile++].name)); } else if ((sFieldType !== "RADIO" && sFieldType !== "CHECKBOX") || oField.checked) { sSearch += "&" + escape(oField.name) + "=" + escape(oField.value); } } oReq.open(sMethod, bIsPost ? oFormElement.action : oFormElement.action.replace(/(?:\?.*)?$/, sSearch.replace(/^&/, "?")), true); bIsPost && oReq.setRequestHeader("Content-Type", "application\/x-www-form-urlencoded"); oReq.send(bIsPost ? sSearch.replace(/^&/, "") : null); } </script> </head> <body> <h1>Sending forms with FormData</h1> <form action="register.php" method="post" onsubmit="AJAXSubmit(this); return false;"> <fieldset> <legend>Registration example</legend> First name: <input type="text" name="firstname" /> Last name: <input type="text" name="lastname" /> </p> <input type="submit" value="Submit" /> </p> </fieldset> </form> </body> </html>
Se devi uploadare file le cose si complicano enormemente e ti rimando a questa guidaCodice PHP:<?php
/* register.php */
header("Content-type: text/plain");
echo ":: data received via GET ::\n\n";
print_r($_GET);
echo "\n\n:: Data received via POST ::\n\n";
print_r($_POST);
echo "\n\n:: Data received as \"raw\" (text/plain encoding) ::\n\n";
if (isset($HTTP_RAW_POST_DATA)) { echo $HTTP_RAW_POST_DATA; }
echo "\n\n:: Files received ::\n\n";
print_r($_FILES);
?>![]()

Rispondi quotando