Всем доброго дня!
1. Есть обычная форма.
<form id="formx" enctype="multipart/form-data" method="post">
<input type="text" name="name" class="frm-el-control" placeholder="Введите Ваше Имя" title="Имя" maxlength="50" >
<input type="email" name="email" class="frm-el-control" placeholder="Введите e-mail" title="Email" pattern="[^@]+@[^@]+\.[a-zA-Z]{2,6}" maxlength="50" >
<input type="tel" name="phone" class="frm-el-control" placeholder="Введите телефон" title="Номер телефона" pattern="(\+?\d[- .()]*){7,18}" maxlength="18" >
<textarea class="frm-el-control" value="" name="message" placeholder="Введите Ваше сообщение"></textarea>
<input type="file" name="avatar" id="file" >
<input class="btn" value="Отправить" type="submit"/>
</form>
Эту форму отправляю на сервер ajax-ом
2.
<script type="text/javascript">
$(function() {
$('#formx').submit(function(e) {
e.preventDefault();
var msg = $('#formx').serialize();
alert(msg);
$.ajax({
type: 'POST',
url: 'addClients.php',
data: msg,
success: function(data) {
var obj = $.parseJSON(data);
$('#table').append(
'<div class="row">'
+ '<span class="cell">' + obj.FIO + '</span>'
+ '<span class="cell">' + obj.phone + '</span>'
+ '<span class="cell">' + obj.email + '</span>'
+ '<span class="cell">' + obj.avatar + '</span>'
+ '<span class="cell">' + obj.message + '</span>'
+ '</div>');
},
error: function(xhr, str) {
alert('Возникла ошибка: ' + xhr.responseCode);
}
});
});
});
</script>
3 Далее на сервере сохраняю значения отправленных полей в БД (скрипт addClient.php) и вывожу в таблицу
$host = 'localhost';
$database = 'tz_clients_list';
$user = 'root';
$pswd = '';
$FIO = $_POST['name'];
$phone = $_POST['phone'];
$email = $_POST['email'];
$message = $_POST['message'];
$uploaddir = 'uploads/';
$uploadfile = $uploaddir .($_FILES['avatar']['name']);
if (copy($_FILES['avatar']['tmp_name'], $uploadfile)) {
echo "<h3>Файл успешно загружен на сервер</h3>";
} else {
echo "<h3>Ошибка! Не удалось загрузить файл на сервер!</h3>";
exit;
}
$dbh = mysql_connect($host, $user, $pswd) or die("Не могу соединиться с MySQL.");
mysql_select_db($database) or die("Не могу подключиться к базе.");
$query = "INSERT INTO `clients` SET
`FIO` = '" . mysql_real_escape_string($FIO) . "',
`phone` = '" . mysql_real_escape_string($phone) . "',
`email` = '" . mysql_real_escape_string($email) . "',
`message` = '" . mysql_real_escape_string($message) . "',
`avatar` = '" . mysql_real_escape_string($avatar) . "'";
mysql_query($query);
$query1 = "SELECT * FROM `clients` ORDER BY id DESC LIMIT 1";//вывод последне добавленной записи
$res = mysql_query($query1);
$json = [];
while ($row = mysql_fetch_array($res)) {
$json = [
'FIO' => $row['FIO'],
'phone' => $row['phone'],
'email' => $row['email'],
'аватар' => $row['avatar'],
'message' => $row['message']
];
}
echo json_encode($json);эти данные вставляются в таблицу над формой
Проблема в том что не получается загрузить файл на сервер и сохранить в бд путь и название файла.Я думал ,что при отправке формы в этой строчке кода
[/code] var msg = $('#formx').serialize(); [code] в переменную msg считываются параметры из поля выбора файла(также как они считываются из остальных полей) ,но этого не происходит и соответственно на сервер файл не загружается.Помогите ,пожалуйста,разобраться где я делаю не так ?