|
|
|
| Здравствуйте!
Выручайте пожалуйста!
Юзаю js библиотеку jquery. Перед отправкой данных на php код нужно сформировать массив с данными таким образом:
var post = {
plotobl: document.getElementById('plotobl').value,
bumobl: document.getElementById('bumobl').value,
krasobl: document.getElementById('krasobl').value,
ponc: document.getElementById('ponc').value,
ponlicobl: document.getElementById('ponlicobl').value,
ponobobl: document.getElementById('ponobobl').value}
|
На самом деле элементов в массиве у меня много больше. А проблема вся в том, что юзер может не ввести данные в какое либо поле и тогда отправки данных не произойдет!
Нужен или аналог isset (как в php) или какой либо другой выход. Выручите пожалуйста!
Что то типа этого нужно:
var post = {
if(isset(document.getElementById('plotobl').value)){plotobl: document.getElementById('plotobl').value}
etc...
}
|
Заранее спасибо! | |
|
|
|
|
|
|
|
для: Antohins
(09.04.2008 в 11:02)
| | В java script существует функция typeof(<имя переменной>)
В твоем случае это будет выглядеть вот так:
Если параметр не является не определенным
if(typeof(document.getElementById('plotobl').value)){plotobl: document.getElementById('plotobl').value != 'undefined'}
....................
............
}
|
| |
|
|
|
|
|
|
|
для: ONYX
(09.04.2008 в 11:54)
| | firebug выдает ошибку missing : after property id | |
|
|
|
|
|
|
|
для: ONYX
(09.04.2008 в 11:54)
| | Ничего не выходит =[
Обьясню по другому:
Нужно проверить каждый элемент одной формы, если он задан, то добавляем это значение в массив для последующей отправки, если нет, то ничего не делаем.
После формирования массива, мы его отсылаем с помощью библиотеки jQuery. Все реализовано, кроме проверки на существование | |
|
|
|
|
|
|
|
для: Antohins
(09.04.2008 в 14:32)
| | Хелп! | |
|
|
|
|
|
|
|
для: Antohins
(09.04.2008 в 14:32)
| | это не ф-я, а оператор.
вот пример использования:
if(!xyjax) {
if(typeof XMLHttpRequest != "undefined") {
xyjax = new XMLHttpRequest();
} else {
//failed = true; // ВАШ БРАУЗОР - ГОВНО
}
}
|
| |
|
|
|
|
|
|
|
для: deman-b
(09.04.2008 в 16:52)
| | не то. я юзаю jquery | |
|
|
|
|
|
|
|
для: Antohins
(09.04.2008 в 17:17)
| | Кому интересно, то существует плагин для jquery.(тут его качать:http://www.linkexchanger.su/2008/45.html мануал там же) с его помощью, после вставки вот такого кода:
function yahoo(){
$.ajax({
type: "POST",
url: "backend.php",
data: $("form").serialize(),
success: function(msg){
alert(msg);
}
});
}
|
к себе на страницу, вы отправите все существующие данные в форме на backend.php и вернется alert с обработанным результатом. | |
|
|
|
|
|
|
|
для: Antohins
(09.04.2008 в 18:36)
| | Собственно случайно сюда заглянул - свою статистику смотрел..... Как раз мой блог упомянули.....
Почему бы при Ваших условиях не поступить по-другому, "врукопашную" (учитывая, что юзаете Вы jQuery), ведь data: $("form").serialize() - не догма, правда?
var databox = new Array();
var value1 = $("selector1").attr("value");
databox[databox.length] = 'name1=' + value1;
var value2 = $("selector2").attr("value");
databox[databox.length] = 'name2=' + value2;
...........................................
var valuen = $("selectorn").attr("value");
databox[databox.length] = 'namen=' + valuen;
data = databox.join("&");
и дальше уже
$.ajax({
type: "POST",
data: data,
url: "handlers/handler.php",
success: function(data){
alert('Ура!');
},
beforeSend: function(){
alert('Поехали!');
}
});
Может и не самый изящный способ, но тут Вы имеете возможность управлять данными, введенными в поля формы. Что-то собирать, что-то нет. Если ум наморщить, то наверное можно примерно тоже сделать и через each( callback ). | |
|
|
|
|