Нужна Ваша помощь. У меня проблема с объектом FormData. Все данные заносятся через класс. К классу обращаюсь файл ajax.php он же обработчик ajax.js.
(ajax.php - обработчик)
$actions = array(
'insert' => array(
'object' => 'Group',
'method' => 'insert'
)
);
if ( isset($actions[$_POST['action']]) )
{
$use_array = $actions[$_POST['action']];
$obj = new $use_array['object'];
if (isset($_POST)){
unset($_POST['action']);
$a = array();
foreach ($_POST as $key=>$value){
$a[$key]=$value;
}
echo $obj->$use_array['method']($a);
}
}
function __autoload($class_name)
{
$filename = './classes/'. strtolower($class_name) . '.class.php';
if ( file_exists($filename) )
{
include_once $filename;
}
}
Кусок кода класса метода обработчика метода: 'method'=>'insert'
public function insert_header(){
// если в массиве $_POST есть ключ name и его значение не равно пустоте, то
if ((isset($_POST['name'])) && (!empty($_POST["name"]))) {
// присвоить $result['name'] значение $_POST['name']
$result['name'] = $_POST['name'];
} else {
// иначе, $result['name'] присвоить указанную строку
$result['name'] = 'Вы не ввели поле name!';
}
// если в массиве $_POST есть ключ message и его значение не равно
пустоте, то
if ((isset($_POST['message']))&& (!empty($_POST["message"]))) {
// присвоить $result['message'] значение $_POST['message']
$result['message'] = $_POST['message'];
} else {
// иначе, $result['message'] присвоить указанную строку
$result['message'] = 'Вы не ввели поле message!';
}
// преобразовать массив $result в json, а затем вывести его с помощью echo
echo json_encode($result);
Форма которую обрабатывает скрипт:
<form id="message">
<div class="form-group">
<label for="name">Имя:</label>
<input type="text" class="form-control" name="name">
</div>
<div class="form-group">
<label for="name">Сообщение:</label>
<textarea class="form-control" rows="3" name="message"></textarea>
</div>
<button id="send-message" class="btn btn-primary">Отправить
сообщение</button>
</form>
Теперь код самого ajax.js
$('#message').submit(function(e) {
var formData = new FormData($('#message')[0]);
$.ajax({
url: 'ajax.php',
data: 'action=insert&'+formData,
processData: false,
contentType: false,
cache:false,
type: 'POST',
dataType: 'JSON',
success: function(data) {
var output = '<ul>';
$.each(data, function(key, value) {
output += '<li><b>' + key + "</b>: " + value + '</li>';
});
output += '</ul>';
$('#result').html(output);
}
});
// отменяем отправку формы стандартным способом
e.preventDefault();
});
Проблема в том, что не могу передать данные из формы по ссылке из data: - data: 'action=insert&'+formData. Если убрать: " data: 'action=insert&'" и код из обработчика перекинуть в файл ajax.php минуя класс Group, то работает. Так нет. Мне это очень важно, чтобы работало именно через FormData() и через класс Group, т.к. буду передавать файл совместно с другими данными из формы (поле фалй пока не создал, хочу получить чисто данные через метод FormData). Если использую просто сериализацию serialize() и "action=insert&" данные получает метод класса, всё успешно работает.
Пробовал так: formData('action','insert'); не работает. Что посоветуете?
<form id="message">
<input type="hidden" id="action" name="action" />
...
$('#message').submit(function(e) {
$(this).find("#action").val("insert");
var formData = new FormData(this);
$.ajax({
url: 'ajax.php',
data: formData,
...
Оборудование для ресторана: новинки профессиональной кухонной техники
Частный дом престарелых в Киеве: комфорт, забота и профессиональный уход
Проблема в том, что нужно клонировать svg элемент и добавить его в другом местеИспользую jquery clone(), но вместо элемента я получаю в html [Object, Object]
Текст небольшого размера, допустим 12px занимает на Opera/Chrome 80 пикселей в ширинуИ в пределах зума 50%-500% ширина меняется только в пределах сотых/тысячных
Здравствуйте, помогите с Travis-Ci, не разу с ним не работалСобрал проект с помощью Maven, добавил в репрезиторий файл "