2016-05-27 19 views
0

Nun, die Sache ist, es gibt bereits ein bearbeitetes Formular mit vielen Feldern, aber alle speichern und validieren geht durch Ajax. Sie haben mich gebeten, einen Datei-Upload zu machen, ich bin hart, das wird nur eine Eingabe gesetzt und es wieder zurückbekommen, aber da alles durch Ajax geht kann ich nicht.Bild über Ajax hochladen

Ich möchte nicht die ganze Funktion ändern und durch eine Übermittlung gehen, wenn es nicht notwendig ist. Ich suchte nach einigen Uploadern der Datei durch Ajax, aber alle von ihnen sind Typ Drag & Drop und ich mag sie nicht, weil Sie nur eine einfache Datei benötigen. Und diejenigen, die ich fand, die einfach sah, wo in Flash ...

Gibt es ein einfaches Skript, das mir erlaubt, eine einfache Datei durch Ajax ohne Notwendigkeit der Änderung der Art der Übermittlung der Felder hochladen.

der Dank im Voraus Kollegen;)

//the js that saves all the inputs 
function _edit_campaign(){ 
var data = formvalues_inspinia("body"); 
data.action=_action; 
data.status=$("#smf_ior_status").val(); 

$.ajax({ 
    url: "/save_changes", 
    dataType: "json", 
    data: data, 
    method:"POST", 
    success: function (response) { 
     if(!response.status){ 
      toastr_error(response.desc); 
      $("#submit_confirm").prop("disabled", false); 
      $("#"+response.camp).focus(); 
     }else{ 
      toastr_success(response.desc); 

     } 
    } 
}); 

}

+1

können Sie bitte Ihren Code zeigen? –

+0

@PareshGami dort yopu haben den Code von js, wo ich alle Felder des Formulars – Caius

Antwort

1

Client-Seite

$.ajax({ 
url: "ajax_php_file.php", // Url to which the request is send 
type: "POST",    // Type of request to be send, called as method 
data: new FormData(this), // Data sent to server, a set of key/value pairs (i.e. form fields and values) 
contentType: false,  // The content type used when sending data to the server. 
cache: false,    // To unable request pages to be cached 
processData:false,  // To send DOMDocument or non processed data file it is set to false 
success: function(data) // A function to be called if request succeeds 
{ 

}); 

Server-Seite

$sourcePath = $_FILES['file']['tmp_name'];  // Storing source path of the file in a variable 
$targetPath = "upload/".$_FILES['file']['name']; // Target path where file is to be stored 
move_uploaded_file($sourcePath,$targetPath) ; // Moving Uploaded file 
+0

speichern schön !!! Das ist, was ich brauche: D Und wenn ich ein paar Eingaben mehr zu diesem Ajax senden müsste, wie es wäre? lässt sagen, ich habe eine Eingabe-Datei-ID = file_pdf und einen Eingang namens Kategorie Könnten Sie den Code bearbeiten, um das zu bekommen? tnx – Caius

+0

der Wert der Eingabekategorie soll in $ _POST ['category'] sein –

1

Sie diese in einfacher Weise erreichen können mit „ajaxSubmit ". Fügen Sie jquery.form.js auf Ihrer Seite ein und senden Sie Ihr Formular ab.

Es sendet alle Formulardaten einschließlich Datei auf dem Server, dann können Sie diese Daten in regulärer Weise behandeln.