2016-11-27 4 views
0

Hallo Ich habe folgenden AJAX-Code:Jquery und AJAX Post zu PHP-Datenattribut?

var formData = new FormData($('form')[0]); 
$.ajax({ 
    url: 'saveImage.php', //Server script to process data 
    type: 'POST', 
    data: formData, 
    processData: false, 
    success: function(data){ 
     console.log(data);    
    } 

}); 

Es funktioniert großartig und es lädt die PHP-Seite, um es den Hintergrund, wie es soll:

<?php 
     include_once "mysql_connect.php"; 
     $imageName = mysql_real_escape_string($_FILES["Image1"]["name"]); 
     $imageData = ''; 
     $imageext = ''; 
     if($imageName != null){ 
      $imageData = mysql_real_escape_string(file_get_contents($_FILES["Image1"]["tmp_name"])); 
      $imageType = mysql_real_escape_string($_FILES["Image1"]["type"]); 
      $imageSize = getimagesize($_FILES["Image1"]["tmp_name"]); 
      $imageType = mysql_real_escape_string($_FILES["Image1"]["type"]); 
      $FileSize = FileSize($_FILES["Image1"]["tmp_name"]); 
      $imageext = mysql_real_escape_string($imageSize['mime']); 
     } 
     $query=mysql_query("INSERT INTO pictures (`id`, `imagedata`, `imageext`) VALUES ('', '$imageData', '$imageext');"); 


     echo $imageext; 


?> 

Das einzige Problem ist, dass die PHP-Seite kippt Finde die Variable Image1, die der Name der Eingabe im Formular ist. Habe ich etwas falsch gemacht. Ich dachte, dass vielleicht in dem Datenparameter in der Ajax würde es so etwas wie dies aber richtig sein:

data: "Image1"=formData, 

Ist das eine Sache, wenn nicht, warum kann nicht meine PHP, dass das Eingabefeld sehen?

+0

Können wir Ihr HTML-Formular sehen? – winseybash

+0

Als Debugging-Schritt versuchen Sie, 'print_r ($ _ POST);' und 'print_r ($ _ FILES);' zu PHP hinzuzufügen, damit Sie genau sehen können, welche Daten gesendet und welche Namen verwendet werden. – Joe

+0

@ Joe es mir
Hinweis gibt: Undefined index: Image1 in C: \ xampp \ htdocs \ Website \ saveImage.php on line
Array ( ) – Jelly

Antwort

0

Sie haben Cache- und ContentType-Eigenschaften in Ihrer Ajax-Funktion vergessen. Versuchen Sie, dass es funktioniert:

var formData = new FormData($('form')[0]); 
$.ajax({ 
    type: "POST",     
    url: "saveImage.php", 
    processData: false, 
    contentType: false, 
    cache:false, 
    data: formData, 
    success: function(data){ 
     console.log(data); 
    } 
}); 
+0

, die didnt leider arbeiten – Jelly

+0

NVM es hat funktioniert – Jelly