Перейти к содержимому


Пользователь месяца
Андрей WPMasterKZ Андрей WPMasterKZ 1-й за Ноябрь
Очков активности: 888 1 тема, 71 сообщение, 8 баллов репутации
Сайт: wpmaster.kz
ТОП самых активных за этот месяц
  • Фотография OlgaGetman
    #1

    OlgaGetman
    Очков активности: 405 4 темы, 78 сообщений, 3 балла репутации

  • Фотография Mandarin
    #2

    Mandarin
    Очков активности: 246 3 темы, 73 сообщения, 2 балла репутации

  • Фотография BLIK
    #3

    BLIK
    Очков активности: 102 0 тем, 17 сообщений, 4 балла репутации

  • Фотография Андрей WPMasterKZ
    #4

    Андрей WPMasterKZ (wpmaster.kz)
    Очков активности: 87 Вне конкурса за определение пользователя месяца

  • Фотография TimurR
    #5

    TimurR
    Очков активности: 63 Вне конкурса за определение пользователя месяца

  • Фотография Rodiola
    #6

    Rodiola
    Очков активности: 42 1 тема, 11 сообщений, 2 балла репутации

  • Фотография thisismyname
    #7

    thisismyname
    Очков активности: 27 4 темы, 6 сообщений, 1 балл репутации

  • Фотография WGN
    #8

    WGN (worldgamenews.com)
    Очков активности: 24 Вне конкурса за определение пользователя месяца

  • Фотография m3Re
    #9

    m3Re
    Очков активности: 22.5 2 темы, 9 сообщений, 1 балл репутации

  • Фотография pozitron123
    #10

    pozitron123
    Очков активности: 22.5 2 темы, 9 сообщений, 1 балл репутации

  • Показать весь ТОП 10
Поддержите форум! =)
Апдейты
  • Яндекс ИКС: 29.11.2018
  • Яндекс выдача: 11.12.2018
Топ 5 участников по репутации


Ajax запрос - как передать в функцию id?

#1 Вячеслав

Вячеслав
  • Пользователь
  • 381 сообщений
  • Репутация: 2
0

Отправлено 04 October 2009 - 03:36

Привет, решил попробовать Ajax в действии...
Пробовал на Mootools но так и невышло, а на Jquery получилось)), но не до конца то что мне хотелось, идея такая - нужно чтоб при клике на ссылке в функцию передавалось определенное значение (id=1), для кажной ссылки свое.

Для того чтобы в Ajax запрос подставлялось нужное значение(id) и я мог по нему вытаскивать пределенную статью из БД.
Сейчас у меня вот так - выбирается статья с id=1 и ее текс просто вставляется в контейнер, подскажите как передать значение в вызываемую функцию?

это index.php:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
<head>
<meta http-equiv="" content="text/html; charset=iso-8859-1" />
<title>fgfghfg</title>
<meta http-equiv="" content="text/html; charset=iso-8859-1" />
<script type="text/javascript" src="jquery-1.3.2.js"></script>
<script type="text/javascript">
$(document).ready(function(){
$("#makeRequest").click(function(){

$.get("script.php", { id: "1" }, function(arr_art){
document.getElementById('preview').innerHTML = ''+ arr_art;
});

});
});
</script>

</head>

<body>
<div id="preview"></div>
<a href="#" id="makeRequest"> Clik me </a>
</body>
</html>


А это обработчик script.php:

<?php
$db = mysql_connect ("localhost","toorr2p","***");
mysql_select_db ("cleverscript", $db);

if(isset($_GET['id'])){
$id = $_GET['id'];
$id = (int)$id;

$result = mysql_query ("SELECT * FROM article WHERE id=$id",$db);
$arr_art = mysql_fetch_array($result);
echo $arr_art['text'];
}
?>

 

 

  • 0

#2 ZiTosS

ZiTosS
  • Неактивные
  • 5148 сообщений
  • Репутация: 8

Отправлено 04 October 2009 - 11:44

Вячеслав, А что тут сложного?
Пишем так:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
<head>
<meta http-equiv="" content="text/html; charset=iso-8859-1" />
<title>fgfghfg</title>
<meta http-equiv="" content="text/html; charset=iso-8859-1" />
<script type="text/javascript" src="jquery-1.3.2.js"></script>
<script type="text/javascript">

function getArticle(idArticle){
$.get("script.php", { id: idArticle }, function(text){
document.getElementById('preview').innerHTML = text;
});
});

</script>

</head>

<body>
<div id="preview"></div>
<a href="java script: getArticle(1)"> Статья #1 </a>
<a href="java script: getArticle(2)"> Статья #2 </a>
<a href="java script: getArticle(3)"> Статья #3 </a>
</body>
</html>


Проверка на существование статьи с таким ID идёт на стороне сервера, то есть в файле к которому мы обращаемся с помощью Ajax. Главное нужно с осторожностью относится к присланным переменным из javascript, так как их можно и подменить.
Если точно знаем что в скрипт передаётся число, в PHP просто используем intval()

Добавлено:
Заметил что на слово javascript у IPB дурное влияние, он его разбивает на два
  • 0

#3 Вячеслав

Вячеслав
    Topic Starter
  • Пользователь
  • 381 сообщений
  • Репутация: 2

Отправлено 04 October 2009 - 14:33

Пробывал я и так, но не срабатывает ничего (( низнаю почему, кликаю на ссылки но ничго не происходит
  • 0

#4 surfer

surfer
  • Заблокированные
  • 1956 сообщений
  • Репутация: 71

Отправлено 04 October 2009 - 14:39

а что дэббагер говорит?
кстати может проблема в php коде7
  • 0

#5 ZiTosS

ZiTosS
  • Неактивные
  • 5148 сообщений
  • Репутация: 8

Отправлено 06 October 2009 - 18:41

Вячеслав, посмотрив debugger под FF, там увидишь где что передаётся и что из запроса возвращается, только отладчиком поработай.
Вообще написанный код должен быть рабочим, попробуй вот так:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
<head>
<meta http-equiv="" content="text/html; charset=iso-8859-1" />
<title>fgfghfg</title>
<meta http-equiv="" content="text/html; charset=iso-8859-1" />
<script type="text/javascript" src="jquery-1.3.2.js"></script>
<script type="text/javascript">

function getArticle(idArticle){
$.get("script.php", { id: idArticle }, function(text){
$('#preview').html(text);
});
});

</script>

</head>

<body>
<div id="preview"></div>
<a href="java script: getArticle(1); return false;"> Статья #1 </a>
<a href="java script: getArticle(2); return false;"> Статья #2 </a>
<a href="java script: getArticle(3); return false;"> Статья #3 </a>
</body>
</html>

  • 0

#6 Вячеслав

Вячеслав
    Topic Starter
  • Пользователь
  • 381 сообщений
  • Репутация: 2

Отправлено 10 October 2009 - 23:10

Спасибо! все зароаботало но без return false; и если javascript написано слитно!

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
<head>
<meta http-equiv="" content="text/html; charset=iso-8859-1" />
<title>fgfghfg</title>
<meta http-equiv="" content="text/html; charset=iso-8859-1" />
<script type="text/javascript" src="jquery-1.3.2.js"></script>
<script type="text/javascript">

function getArticle(idArticle){

$.get("script.php", { id: idArticle }, function(text){
$('#preview').html(text);
});
}

</script>

</head>

<body>
<div id="preview"></div>
<a href="java script:getArticle(1);"> Статья #1 </a>
<a href="java script:getArticle(2);"> Статья #2 </a>
<a href="java script:getArticle(3);"> Статья #3 </a>
</body>
</html>

  • 0

#7 ZiTosS

ZiTosS
  • Неактивные
  • 5148 сообщений
  • Репутация: 8

Отправлено 11 October 2009 - 09:56

Вячеслав, внимательнее читай мои посты, я писал, что слитно надо javascript
  • 0

#8 Вячеслав

Вячеслав
    Topic Starter
  • Пользователь
  • 381 сообщений
  • Репутация: 2

Отправлено 16 October 2009 - 19:51

Это я чтоб напомнить для других малоли, я все подметил сразу :)

До этого была функция на Jquery но задача изменилась и теперь Ajax нужно использовать в Joomla без применения Jquery тоесть на Mootools.

Вроде все написал по инструкции но консольошибок в FF выдает такую ошибку при событии click на элементе:

Request is not defined
[Break on this error] var req = new Request({\r\n


Код функции:

window.addEvent('domready', function() {
$('params__viewTabsToHide').addEvent('click', function() {
var req = new Request({
method: 'get',
url: 'http://www.cleverscript.ru/ajax_jquery/script.php',
data: { 'id' : '1' }
}).send();
});
});

  • 0

#9 Вячеслав

Вячеслав
    Topic Starter
  • Пользователь
  • 381 сообщений
  • Репутация: 2

Отправлено 16 October 2009 - 23:32

Отбой разобрался, это потому что в Joomla версия var MooTools={version:'1.11'} а я ниписал под 1,2,3 ((
  • 0

robot

robot
  • Пользователь PRO
  • 2652 сообщений
  • Репутация: 85


Похожие темы

  Название темы Автор Статистика Последнее сообщение

Оформление форума – IPBSkins.ru