2017-01-21 2 views
0

Ich bin neu hier und das ist mein erstes "Web-Projekt". Der Code, den Sie sehen, funktioniert soweit. Es ist möglich, Text, Daten usw. von meiner Website zu einer MySQL-Datenbank hinzuzufügen. Jetzt möchte ich ein Bild in den Datensatz hochladen. Ich möchte das Bild auf dem lokalen Server speichern und die Richtung zur Datenbank setzen. Aber wie?Wie man ein Bild zu MySQL mit Ajax hinzufügt

Irgendwelche Ideen?

Best, Iven

index.html:

... 
    <input class="input-group" enctype="multipart/form-data" type="file" 
      name="event_img" id="event_img" accept="image/*" /> 
... 

eventhandler.js:

... 

$("button#insert").click(function() { 

    var eventData = { 

     action: "insert", 

     event_name: $('#event_name').val(), 
     event_location: $('#event_location').val(), 
     event_date: $('#event_date').val(), 
     event_time: $('#event_time').val(), 
     event_weblink: $('#event_weblink').val(), 
     event_text: $('#event_text').val(), 
     event_genre: $("input[name='event_genre']:checked").val() 

    } 

    $.ajax({ 
     type: "POST", 
     url: "/Blik/crud.php", 
     data: eventData, 

     success: function (msg) { 
      var obj = $.parseJSON(msg); 
      if (obj.message) { 
       $("#footerfeedback").text(obj.message); 
      } else { 

... 

       $("#footerfeedback").text(outstr); 
      } 
     } 
    }); 
}); 

... 

crud.php:

  ... 


      try { 
       $sql = 'INSERT INTO events SET 

       event_name = :event_name, 
       event_date = :event_date, 
       event_time = :event_time, 
       event_location = :event_location,   
       event_text = :event_text, 
       event_weblink = :event_weblink, 

       event_genre = :event_genre'; 


       $s = $pdo->prepare($sql); 
       $s->bindValue(':event_name', $_POST['event_name']); 
       $s->bindValue(':event_date', $_POST['event_date']); 
       $s->bindValue(':event_time', $_POST['event_time']); 
       $s->bindValue(':event_location',$_POST['event_location']); 
       $s->bindValue(':event_text', $_POST['event_text']); 
       $s->bindValue(':event_weblink', $_POST['event_weblink']); 
       $s->bindValue(':event_genre', $_POST['event_genre']); 
      // $s->bindValue(':event_img', $_POST[$target_file]); 

       $s->execute(); 


       $response = array('message' => 'insert done'); 
... 
+0

können Sie dies in eine js-Geige machen und einen Link posten? Ich war fast dazu geneigt, zu helfen, aber ich habe nur so viel Zeit an einem Tag. :-) – blamb

Antwort

1

Sie müssen das Hochladen Ich bin alterniere auf deinem Server mit einem separaten Ajax-Aufruf und füge die Datei oder deren Pfad bei Erfolg in das Formular ein, und reiche es so ein, wie du es schon machst. see here für mehr Hilfe, wie man Dateien mit Ajax hochlädt. Ich hoffe, es hilft.

+0

ok das macht total Sinn. Danke! – IvenLonger

Verwandte Themen