Здравствуйте коллеги, впал немного в ступор, может вы чем поможите.
Суть заключается в следующем. Есть форма подачи объявления, в ней Ajax загрузка фотографий, при загрузке фото они сразу заливаются на сервер и в таблицу бд ad_amage записывает id(ai), id пользователя(кто подал), имя загруженного изображения с расширением и дата загрузки, так же имеется поле ad_id (id объявления), при загрузке фото оно остается пустым, так как само объявление ещё не подано. Так вот сам вопрос, как в таблицу с изображениями записать id объявления, непосредственно после его подачи, когда сабмится основная форма.
Брал загрузчик от сюда: www.itlessons.info/php/ajax-file-upload
Все лишнее постарался убрать. Оставил пару импутов в основной форме.
upload.php непоместился, написал в первом комментарии
new_ad.php
<?
session_start();
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
$ad_type = $_POST['ad_type'];
$id_user = $_SESSION['id'];
$host = 'localhost';
$db = 'demo';
$dsn = "mysql:host=$host;dbname=$db;";
$user = '***';
$pass = '***';
$opt = array(
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC);
$pdo = new PDO($dsn, $user, $pass, $opt);
$sql = "INSERT INTO `objects` (id_user,ad_type) VALUES (:id_user,:ad_type)";
$sth = $pdo->prepare($sql);
$sth->bindValue(':id_user', $id_user);
$sth->bindValue(':ad_type', $ad_type);
$sth->execute();
}
?>
<!DOCTYPE html>
<body>
<div class="container">
<!--ОСНОВНОЙ БЛОК-->
<div class="row">
<div class="col-md-12">
<div class="row podbor">
<!--ФОРМА НОВОГО ОБЪЯВЛЕНИЯ-->
<form method="post" class="form-horizontal" role="form" name="form" action="">
<div class="row">
<div class="col-md-8">
<div class="row">
<select class="form-control" name="ad_type">
<option value="1">Продать</option>
<option value="2">Сдать в аренду</option>
</select>
</div>
</div>
</div>
<div class="col-md-4">
<?
require_once __DIR__ . '/protected/bootstrap.php';
?>
<div class="demo">
<h4>Загрузка изображений</h4>
<hr>
<div id="dropzone">
<div class="title">Перетащите файлы</div>
<div class="or">или</div>
<div class="browser">
<label>
<span>Выберите файлы</span>
<input multiple type="file" name="file"/>
</label>
</div>
</div>
<div id="output"></div>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
<script src="http://cdnjs.cloudflare.com/ajax/libs/jquery-jgrowl/1.2.12/jquery.jgrowl.min.js"></script>
<script src="http://cdn.jsdelivr.net/buzz/1.1.0/buzz.min.js"></script>
<script src="static/dmuploader.min.js"></script>
<script type="application/javascript">
$(document).ready(function () {
initialize();
$('#dropzone').dmUploader({
url: 'upload.php',
dataType: 'json',
maxFileSize: 1024 * 1014,
allowedTypes: 'image/*',
onBeforeUpload: function (id) {
$("div#output")
// .html('<img src="static/loader.gif">') закоментил так как переделал под множественную загрузку
.show();
},
onUploadSuccess: function (id, response) {
if (response.type == "message") {
$.jGrowl(response.data.txt, {theme: response.data.type});
}
if (response.type == "upload") {
$("div#output").append('<img src="' + response.data.url + '">');
}
},
onUploadError: function (id, message) {
$.jGrowl("Файл: " + id + " не загрузился: " + message, {theme: 'error'});
},
onFileTypeError: function (file) {
$.jGrowl("Загружать можно только png и jpeg!", {theme: 'error'});
},
onFileSizeError: function (file) {
$.jGrowl("Файл слишком большой!!", {theme: 'error'});
},
onFallbackMode: function (message) {
$.jGrowl("Ваш браузер не поддерживается 8(", {theme: 'error'});
}
});
});
function initialize() {
//sounds
buzz.defaults.formats = ['ogg', 'mp3'];
buzz.defaults.preload = true;
if (buzz.isSupported()) {
var noticeSound = new buzz.sound("static/sounds/notice");
}
//messages
$.jGrowl.defaults.position = 'top-right';
$.jGrowl.defaults.closer = false;
$.jGrowl.defaults.beforeOpen = function (e, m, o) {
if (noticeSound)
noticeSound.play();
};
}
</script>
</div>
</div>
</div>
<hr>
<div class="row">
<div style="text-align: center">
<button type="submit" class="btn btn-primary">Подать объявление</button>
</div>
</div>
</form>
</div>
</div>
</div>
<!--НИЖНЯЯ ЧАТСЬ-->
</div>
<?
include '../modules/footer.php';
?>
</body>
</html>