Правила     Закладки     Карма    Календарь    Журналы    Помощь    Поиск    PDA    Чат   
        СМС-ки
   
Пейджер выключен!
 
Фильтр авторов:    показать 
  скрыть
  Ответ в темуСоздание новой темыСоздание опроса

> отправка формы ajax
yintar  
 ۩  [x] Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Пользователь
**

Профиль
Группа: Пользователь
Сообщений: 76
Пользователь №: 39357
На форуме: 2 года, 7 месяцев, 24 дня
Карма:




Всем доброго дня!
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 считываются параметры из поля выбора файла(также как они считываются из остальных полей) ,но этого не происходит и соответственно на сервер файл не загружается.Помогите ,пожалуйста,разобраться где я делаю не так ?

PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Zzepish  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Аццкая хрень
******

Профиль
Группа: ★ЛжеЭксперт★
Завсегдатай форума
Сообщений: 5475
Пользователь №: 32538
На форуме: 4 года, 6 месяцев, 8 дней
Карма: 49




Так ты его не загрузишь. Нужно юзать или html5, или iframe


--------------------
Правда тоже ложь, но с иным углом.
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
kaww  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 1755
Пользователь №: 20757
На форуме: 6 лет, 10 месяцев, 2 дня
Карма: 184




Цитата (yintar @ 21.03.2016 - 09:07)
где я делаю не так

ajax'ом нельзя загрузить файлы. Есть несколько вариантов загрузки файла без перезагрузки страницы - это flash, iframe, html5. Еще есть готовые решения, например, https://github.com/blueimp/jQuery-File-Upload
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
yintar  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Пользователь
**

Профиль
Группа: Пользователь
Сообщений: 76
Пользователь №: 39357
На форуме: 2 года, 7 месяцев, 24 дня
Карма:




Zzepish или kaww подскажите ,пожалуйста как это сделать в моем коде средствами о которых вы говорили .Я ни разу не отправлял файлы ajax и мне надо чтобы тот код который я уже написал тоже работал(как он сейчас работает).
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Zzepish  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Аццкая хрень
******

Профиль
Группа: ★ЛжеЭксперт★
Завсегдатай форума
Сообщений: 5475
Пользователь №: 32538
На форуме: 4 года, 6 месяцев, 8 дней
Карма: 49






--------------------
Правда тоже ложь, но с иным углом.
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
sergeiss  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Сидел он, дум великих полон - и вдаль глядел
******

Профиль
Группа: Эксперт
Группа переписки
Сообщений: 14966
Пользователь №: 4190
На форуме: 8 лет, 9 месяцев, 27 дней
Карма: 443




Цитата (kaww @ 21.03.2016 - 13:14)
ajax'ом нельзя загрузить файлы. Есть несколько вариантов загрузки файла без перезагрузки страницы - это flash, iframe, html5

Ты сам себе противоречишь smile.gif То "нельзя", то про html5 говоришь, который как раз позволяет аяксом отправить файл.


--------------------
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
PMICQ
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
yintar  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Пользователь
**

Профиль
Группа: Пользователь
Сообщений: 76
Пользователь №: 39357
На форуме: 2 года, 7 месяцев, 24 дня
Карма:




sergeiss, наоборот html5 мне подходит,Пожалуйста ,подскажите ,что и где мне надо добавить или изменить в моем коде ,чтобы вместе с остальными данными загружался на сервер выбранный в форме файл
Спасибо
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Zzepish  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Аццкая хрень
******

Профиль
Группа: ★ЛжеЭксперт★
Завсегдатай форума
Сообщений: 5475
Пользователь №: 32538
На форуме: 4 года, 6 месяцев, 8 дней
Карма: 49




Я тебе бросил ссылки выше. Данные можно хоть через base64 пихать таким боком в твою реализацию


--------------------
Правда тоже ложь, но с иным углом.
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
  Быстрый ответ
Информация о Госте
Введите Ваше имя
Кнопки кодов
Для вставки цитаты, выделите нужный текст и
НАЖМИТЕ СЮДА
Введите сообщение
Смайлики
:huh:  :o  ;) 
:P  :D  :lol: 
B)  :rolleyes:  <_< 
:)  :angry:  :( 
:unsure:  :blink:  :ph34r: 
     
Показать всё

Опции сообщения  Включить смайлики?
 Включить подпись?
 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:

Опции темы Ответ в темуСоздание новой темыСоздание опроса