2017-01-21 24 views
0

ここは初めてのことですが、これは初めての "Webプロジェクト"です。これまでのコードは動作しています。私のウェブサイトからテキスト、日付などをMySQLデータベースに追加することは可能です。今私はデータセットに画像をアップロードしたいと思います。私は、ローカルサーバー上にイメージを保存し、データベースに方向を入れたいと思います。しかしどうですか?Ajaxを使ってMySQLに画像を追加する方法

アイデア?

ベスト、 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

これをjs-fiddleにしてリンクを投稿できますか?私はそうするようにほとんど傾けていましたが、私は一日でとても長い時間しか持っていません。 :-) – blamb

答えて

1

はあなたがアップロードする必要がありますイム年齢をあなたのサーバーに別のajax呼び出しで追加し、フォームに入力するためにファイルまたはそのパスを挿入します。そして、あなたがすでにそれをやっているように送信します。 see here ajaxを使用してファイルをアップロードする方法の詳細については、こちらをご覧ください。私はそれが助けて欲しい

+0

これは完全に意味があります。ありがとうございました! – IvenLonger

関連する問題