Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 26.06.2011, 00:25
Аспирант
Отправить личное сообщение для jayson Посмотреть профиль Найти все сообщения от jayson
 
Регистрация: 31.03.2011
Сообщений: 38

берем, проверяем, выводим.
вот мой код

HTML страницы с которой выполняется скрипт
<div id="div_1"></div>
<div id="div_body"></div>

HTML страницы с которой происходит загрузка
<div id="div_value"></div>

сам скрипт
function checkme() {
$(#div_1).load('page.php #div_value');
var ck_value = $(#div_1).text();
if (ck_value == "") {
$("#div_body").load('error.php');
}
else {
$("#div_body").load('ok.php');
}
}


суть работы - эта функция загружает в саму страницу с которой делается скрипт, заданный див с другой страницы, а потом идет проверка если ниче нету то ошибка , если чтото есть то ОК

вопрос заключается в том что проверка не работает, почему? профессионалы помогите мне пожалуйста

и вот заодно напишу пару вопросов
когда происходит заргузка данного дива то это выглядит вот так
<div id="div_1"><div id="div_value">12345</div></div>

как сделать чтобы только сам див (div_value) не загружался а только что внутри него

вот в этой строчке $(#div_1).load('page.php #div_value'); если дописать .text()
тоесть так $(#div_1).load('page.php #div_value').text();
что это дает, и вообще надо ли, может из-за этого не сравнивает?!


далее вот эти дивы
<div id="div_1"></div>
<div id="div_body"></div>

я записал в саму страницу тоесть они уже там присутствуют, а как сделать так чтобы они добавлялись самим яваСкриптом, тоесть в html не прописывать, а вставлять в хтмл при выполнении функции, вроде знаю что так можно

ответьте пожалуйста на мои вопросы умники и умницы
Ответить с цитированием
  #2 (permalink)  
Старый 26.06.2011, 00:41
sinistral
Посмотреть профиль Найти все сообщения от melky
 
Регистрация: 28.03.2011
Сообщений: 5,418

всегда ставь JS в BB-теги

на странице такой же скрипт? если да, то смотри внимательней
$(*!*#div_1*/!*).load('page.php #div_value');
var ck_value = $(*!*#div_1*/!*).text();
if (ck_value == "") {
$("#div_body").load('error.php');
}
else {
$("#div_body").load('ok.php');
}
}


строки должны быть заключены в кавычки
ошибок на странице не возникает?

window.onerror = function(){alert('err')}
Ответить с цитированием
  #3 (permalink)  
Старый 26.06.2011, 01:31
Аспирант
Отправить личное сообщение для jayson Посмотреть профиль Найти все сообщения от jayson
 
Регистрация: 31.03.2011
Сообщений: 38

это тут опечатка , а на странице в кавычках, так что скажешь по поводу моих вопросов?)
Ответить с цитированием
  #4 (permalink)  
Старый 26.06.2011, 02:04
sinistral
Посмотреть профиль Найти все сообщения от melky
 
Регистрация: 28.03.2011
Сообщений: 5,418

Сообщение от jayson Посмотреть сообщение
вот мой код

HTML страницы с которой выполняется скрипт
<div id="div_1"></div>
<div id="div_body"></div>

HTML страницы с которой происходит загрузка
<div id="div_value"></div>

function checkme() {
$(#div_1).load('page.php #div_value');
var ck_value = $(#div_1).text();
if (ck_value == "") {
$("#div_body").load('error.php');
}
else {
$("#div_body").load('ok.php');
}
}
Сообщение от jayson Посмотреть сообщение
когда происходит заргузка данного дива то это выглядит вот так
<div id="div_1"><div id="div_value">12345</div></div>

как сделать чтобы только сам див (div_value) не загружался а только что внутри него

обработай входные данные или убери вывод этого дива.

насчет первого ,

вместо
$("#div_1").load('page.php #div_value');


пиши

$("#div_1").load('page.php #div_value', *!*function(data){this.innerHTML=data.replace(/<.+>(.*)<.+>/,"$1")}*/!*);

или это
*!*$("#div_1").html(*/!*     $("#div_1").load('page.php #div_value').text()   *!*)*/!*


Сообщение от jayson Посмотреть сообщение
вот в этой строчке $(#div_1).load('page.php #div_value'); если дописать .text()
тоесть так $(#div_1).load('page.php #div_value').text();
что это дает, и вообще надо ли, может из-за этого не сравнивает?!
смотри на сайте документации $.text()
если неясно - спустись вниз до примеров, там станет ясно

Сообщение от jayson Посмотреть сообщение
далее вот эти дивы
<div id="div_1"></div>
<div id="div_body"></div>

я записал в саму страницу тоесть они уже там присутствуют, а как сделать так чтобы они добавлялись самим яваСкриптом, тоесть в html не прописывать, а вставлять в хтмл при выполнении функции, вроде знаю что так можно
можно, читай документацию на русском
Ответить с цитированием
  #5 (permalink)  
Старый 26.06.2011, 02:20
Аспирант
Отправить личное сообщение для jayson Посмотреть профиль Найти все сообщения от jayson
 
Регистрация: 31.03.2011
Сообщений: 38

Цитата:
пиши

$("#div_1").load('page.php #div_value', function(data){this.innerHTML=data.replace(/<.+>(.*)<.+>/,"$1")});

или это
$("#div_1").html( $("#div_1").load('page.php #div_value').text() )
прокомментируй пожалуйста что эти коды делают чтобы я понимал
Ответить с цитированием
  #6 (permalink)  
Старый 26.06.2011, 02:25
Аспирант
Отправить личное сообщение для jayson Посмотреть профиль Найти все сообщения от jayson
 
Регистрация: 31.03.2011
Сообщений: 38

melky
var ck_value = $(#div_1).text();
вот смотри здесь зачем нужен text() чтобы потом можно было сравнивать верно?




а вот здесь я не знаю нужен он или нет вроде пробовал и так и так и ниче незнаю че делается в итоге
$("#div_1").load('page.php #div_value').text()



я конечно понимаю возможно это наглость, но пожалуйста разъясняй мне подробнее чтобы я понимал и учился в дальнейшем
Ответить с цитированием
  #7 (permalink)  
Старый 26.06.2011, 02:27
sinistral
Посмотреть профиль Найти все сообщения от melky
 
Регистрация: 28.03.2011
Сообщений: 5,418

Сообщение от jayson Посмотреть сообщение
прокомментируй пожалуйста что эти коды делают чтобы я понимал
$("#div_1").html( $("#div_1").load('page.php #div_value').text() )


можно расписать как

// загрузит с тегом DIV и вернет текст (уже без DIV )
// т.е. просто 12345 
var newText = $("#div_1").load('page.php #div_value').text();
// записывает этот текст в дивчик
$("#div_1").html( newText  )


первый пример почти такой же, только там используется callback (ф-я, исполняющаяся после выполнения запроса). подробнее - в документации
Ответить с цитированием
  #8 (permalink)  
Старый 26.06.2011, 02:35
Аспирант
Отправить личное сообщение для jayson Посмотреть профиль Найти все сообщения от jayson
 
Регистрация: 31.03.2011
Сообщений: 38

ok следуем дальше, вообщем функция не распознает , может это потомучто не успевает? я просто смотрел через дебаггер там все встраивается в страницу, но загружает всегда
$("#div_body").load('error.php');
этот код, мне кажется не успевает чтоли или я неззнаю че тут неправильно

да и всетаки скажи вот здесь нужен текст код?


$("#div_1").load('page.php #div_value').text();
потомучто работает и так и так вроде


и дак какой пример лучше использовать там где ты говоришь колбек или второй
и в чем разница между ними
Ответить с цитированием
  #9 (permalink)  
Старый 26.06.2011, 02:58
sinistral
Посмотреть профиль Найти все сообщения от melky
 
Регистрация: 28.03.2011
Сообщений: 5,418

для понимания кода легче написать без колбека. ну, для меня, по крайней мере.

я не помню, или не соображаю уже, но load - это асинхронный или синхронный AJAX?

поставь так вокруг

$("#div_1").html( $("#div_1").load('page.php #div_value').text() )


и смотри в сообщения консоли


console.log("LOADING started")

$("#div_1").html( $("#div_1").load('page.php #div_value',function(){console.log("LOADING was ASYNC")}).text() );

console.log("LOADING was sync.");


и запусти еще раз

если после сообщения "LOADING started" идет "LOADING was ASYNC", то делай этот запрос синхронно, через $.ajax().

похожу запрос асинхронный, и данные не приходят,когда скрипт выполняется дальше, тем самым рушится вся логика
Ответить с цитированием
  #10 (permalink)  
Старый 26.06.2011, 03:39
Аспирант
Отправить личное сообщение для jayson Посмотреть профиль Найти все сообщения от jayson
 
Регистрация: 31.03.2011
Сообщений: 38

идет вот так

LOADING started
LOADING was sync.
LOADING was ASYNC



а код всетаки грузит так оба дива
<div id="div_1"><div id="div_value">12345</div></div>

это потомучто лоад асинхронный да?

Последний раз редактировалось jayson, 26.06.2011 в 14:54.
Ответить с цитированием
Ответ


Опции темы Искать в теме
Искать в теме:

Расширенный поиск