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


Пользователь месяца
WGN WGN 1-й за Июль
Очков активности: 850 2 темы, 75 сообщений, 7 баллов репутации
Сайт: worldgamenews.com
ТОП самых активных за этот месяц
  • Фотография TimurR
    #1

    TimurR
    Очков активности: 273 3 темы, 17 сообщений, 7 баллов репутации

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

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

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

    ShowPrint (ShowPrint.ru)
    Очков активности: 52.5 0 тем, 7 сообщений, 5 баллов репутации

  • Фотография BlackLion
    #4

    BlackLion
    Очков активности: 36 0 тем, 24 сообщения, 1 балл репутации

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

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

  • Фотография Napoleon-007
    #6

    Napoleon-007
    Очков активности: 21 0 тем, 14 сообщений, 1 балл репутации

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

    Ixman (o5cat.ru)
    Очков активности: 21 0 тем, 7 сообщений, 2 балла репутации

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

    alekswebart
    Очков активности: 19.5 1 тема, 10 сообщений, 1 балл репутации

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

    r0mZet (rz-style.ru)
    Очков активности: 18 2 темы, 6 сообщений, 1 балл репутации

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

    profi (1informer.com)
    Очков активности: 12 0 тем, 8 сообщений, 1 балл репутации

  • Показать весь ТОП 10

Kwork.ru - услуги фрилансеров от 500 руб.

Поддержите форум! =)
Апдейты
  • Яндекс тИЦ: 19.11.2017
  • Яндекс выдача: 17.08.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

robot

robot
  • Пользователь PRO
  • 2652 сообщений
  • Репутация: 85
Советую обратить внимание на следующее:
  1. Передача данных между PHP и JavaScript
  2. Работа с переменными Javascript
  3. JS отправка get запроса при нажатии на div
  4. Ругается при Ajax-запросе.
  5. Как передать переменную из JS в PHP методом xhr.send() ?

#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