Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

HTML+CSS+JavaScript

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Проверка на существование js переменных
 
 автор: Antohins   (09.04.2008 в 11:02)   письмо автору
 
 

Здравствуйте!

Выручайте пожалуйста!
Юзаю 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...
}


Заранее спасибо!

   
 
 автор: ONYX   (09.04.2008 в 11:54)   письмо автору
 
   для: Antohins   (09.04.2008 в 11:02)
 

В java script существует функция typeof(<имя переменной>)

В твоем случае это будет выглядеть вот так:
Если параметр не является не определенным
if(typeof(document.getElementById('plotobl').value)){plotobl: document.getElementById('plotobl').value != 'undefined'} 
....................
............

   
 
 автор: Antohins   (09.04.2008 в 14:08)   письмо автору
 
   для: ONYX   (09.04.2008 в 11:54)
 

firebug выдает ошибку missing : after property id

   
 
 автор: Antohins   (09.04.2008 в 14:32)   письмо автору
 
   для: ONYX   (09.04.2008 в 11:54)
 

Ничего не выходит =[

Обьясню по другому:
Нужно проверить каждый элемент одной формы, если он задан, то добавляем это значение в массив для последующей отправки, если нет, то ничего не делаем.

После формирования массива, мы его отсылаем с помощью библиотеки jQuery. Все реализовано, кроме проверки на существование

   
 
 автор: Antohins   (09.04.2008 в 16:48)   письмо автору
 
   для: Antohins   (09.04.2008 в 14:32)
 

Хелп!

   
 
 автор: deman-b   (09.04.2008 в 16:52)   письмо автору
 
   для: Antohins   (09.04.2008 в 14:32)
 

это не ф-я, а оператор.
вот пример использования:
if(!xyjax) {
        if(typeof XMLHttpRequest != "undefined") {
            xyjax = new XMLHttpRequest();
        } else {
            //failed = true; // ВАШ БРАУЗОР - ГОВНО
        }
    }

   
 
 автор: Antohins   (09.04.2008 в 17:17)   письмо автору
 
   для: deman-b   (09.04.2008 в 16:52)
 

не то. я юзаю jquery

   
 
 автор: Antohins   (09.04.2008 в 18:36)   письмо автору
 
   для: 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 с обработанным результатом.

   
 
 автор: Gennady   (11.04.2008 в 23:11)   письмо автору
 
   для: 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 ).

   
 
 автор: melok   (11.12.2008 в 03:01)   письмо автору
 
   для: Antohins   (09.04.2008 в 11:02)
 

Посмотрите http://melok.com.ua/razdels/library/?f=1027-126-675-353
Там Ваша проблема с примерами

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования