[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Как отправить данные, не перезагружая страницу?
ИНСИ
Привет всем.

Если можно, помогите или дайте какой-нибудь пример того, как сделать кнопку "Добавить в закладки" и чтобы при нажатии на нее, страница не перезагружалась, а просто потом появилось, Пост добавлен к вам в закладки.

Допустим, иногда бывает на сайтах Голосование. Нажимаешь на свой выбор и потом не вся страница перезагружается, а только блок с голосованием. Как это сделать?

Читал инфо про фреймы, кажется там можно реализовать, но как именно не знаю, толком в интернете на эту тему я ничего не нашел. Помогите плиз.... очень надо...



Спустя 1 час, 27 минут, 8 секунд (11.07.2009 - 14:59) PandoraBox2007 написал(а):

Спустя 2 часа, 38 минут, 9 секунд (11.07.2009 - 17:37) twin написал(а):

Спустя 47 минут, 19 секунд (11.07.2009 - 18:25) ИНСИ написал(а):
twin ОГРОМНОЕ спасибо! Сейчас буду изучать =)) если что, потом напишу что получилось =))

Спустя 58 минут, 43 секунды (11.07.2009 - 19:23) ИНСИ написал(а):
я посмотрел код, работает все, но теперь сложность в том, чтобы ... в общем, я не знаю как сделать, пожалуйста помогите....

Вот моя страница:
PHP
<html>
<
head>

</
head>
<
body>
<?
    $result = mysql_query("SELECT id,title FROM table LIMIT 20",$db);
    if(mysql_num_rows($result) > 0)
    {
        $myrow = mysql_fetch_array($result);
        do { printf('Заголовок: %s; Добавить в закладки (номер %s)!',$myrow["title"],$myrow["id"]); }
        while($myrow = mysql_fetch_array($result));
    }
    else { echo 'В базе ничего нет!'; }


Как видите, printf выводит 20 записей, у которых разный номер. Именно этот номер нужен для того, чтобы файл обработчик добавил в БД.

Теперь задача стоит в том, чтобы у Добавить в закладки, была возможность отправить номер этот в файл обработчик. То есть, вот страница, там ТЕКСТОМ написано Добавить в закладки, где я нажимаю и статья добавляется ко мне в закладки.

Как сделать чтобы отправлялся нужный номер? и так, чтобы была не кнопка submit а ссылка простая?

Кто действительно поможет, обещаю, что обиженным не останется =))))

этот код работает на 100%, я просто не знаю ни ява ни аякс, поэтому и не знаю как связать теперь этот код =))

Свернутый текст
PHP
<html>
<
head>
&
#60;script type="text/javascript" language="javascript">
var req = Create();

function ge(id)
{
    return document.getElementById(id);
}

function Create(){ 
if(navigator.appName == "Microsoft Internet Explorer"){ 
req 
= new ActiveXObject("Microsoft.XMLHTTP"); 
}else{ 
req 
= new XMLHttpRequest(); 
} 
return req
; 
} 

function Request
(query)
{
req.open('post', 'ajax.php' , true );
req.onreadystatechange = Refresh;
req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=utf-8");
req.send(query); 
} 

function Refresh
()
{
    if( req.readyState == 4 )
    ge('ajax').innerHTML = req.responseText;
    else
    ge
('ajax').innerHTML = '<img src="prel.gif" />';

}
function Pusk()
{
 
var query
; 

    query 
='txt='+encodeURIComponent(ge('myid').value);

Request(query);
}
</script>
</head>
<body>
<div id="ajax"></div>

<input type='text'  id='myid' ><br>
<input type="button" value="ТЫРЦ" onClick="Pusk()">

Спустя 1 час, 57 секунд (11.07.2009 - 20:24) PandoraBox2007 написал(а):
HTML
<html>
<head>
<script type="text/javascript" language="javascript">
var req = Create();

function ge(id)
{
return document.getElementById(id);
}

function Create()
{
if (navigator.appName == "Microsoft Internet Explorer")
{
req = new ActiveXObject("Microsoft.XMLHTTP");
} else {
req = new XMLHttpRequest();
}
return req;
}

function Request(query)
{
req.open('post', 'ajax.php' , true );
req.onreadystatechange = Refresh;
req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8");
req.send(query);
}

function Refresh()
{
if( req.readyState == 4 )
ge('ajax').innerHTML = req.responseText;

else
ge('ajax').innerHTML = '<img src="prel.gif" />';

}

function Pusk()
{
var query;

query ='txt='+encodeURIComponent(ge('myid').value);
Request(query);
}
</script>
</head>
<body>
<div id="ajax"></div>
<input type='text' id='myid' ><br />
<input type="button" value="ТЫРЦ" onClick="Pusk()">
<img src="prel.gif" width="1" height="1" />


ajax.php:
PHP
<?php

if 
(!empty($_POST['txt']))
{
    $friend_id = intval($_POST['txt']);
    $my_id = intval($data['myid']);
    
    
// SELECT * FROM bookmark WHERE my_id = '11' ORDER BY friend_id ASC
    $sql = "INSERT INTO (my_id, friend_id) VALUE ('$my_id', '$friend_id')";
    if ( mysql_query($sql)  )
    {
        
    
} else {
        //echo 'error;'
    }
}


SQL
CREATE TABLE `bookmark` (
`my_id` int(11) NOT NULL,
`friend_id` int(11) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=cp1251

Спустя 23 минуты, 27 секунд (11.07.2009 - 20:48) PandoraBox2007 написал(а):
SQL
SELECT * FROM bookmark WHERE my_id = '$my_id' AND friend_id = '$friend_id' LIMIT 1


вначале проверка у меня в таблице нет уникального индекса

Спустя 1 час, 6 минут, 12 секунд (11.07.2009 - 21:54) ИНСИ написал(а):
PandoraBox2007 извини, но я не понял твою мысль. не мог бы ты прокомментировать? и еще, как мне сделать Добавить в закладки в виде ссылки? не текстовое поле и кнопка добавить, а просто ссылка?

И еще. Получается выходит 20 статей. Внизу каждой есть кнопка Добавить в закладки. И вопрос? как будет узнавать аякс, в какой именно статье снизу надо показать сообщение?

Пример. Сейчас в коде он выведет сообщение в диве "ajax". А там будет 20 статей с 20 дивами ajax. Как он узнает где была нажата кнопка и куда вывести сообщение?

Поможешь, заплачу 500 +.. рублей.

Спустя 2 часа, 17 минут, 46 секунд (12.07.2009 - 00:12) PandoraBox2007 написал(а):
JavaScript:
PHP
/*
  jQuery addons
  Copyright © 2009, Pandora.
  ICQ: 411-672 | 7-133-098
*/

function join_bookmark(id)
{
  var return_code = "";
  $('#link_'+id).val();
  $('#link_'+id).attr ('href','#');
  $('#link_'+id).html('<img src="img/loading.gif" align="absmiddle">&nbsp;Загрузка...');
  
  
/* Getting a ticket */
  $.get('ajax.php',  { action : 'bookmark', 'id' : id },
    function(data){
     return_code = data;
    }
  );
  /* Getting a ticket END.. */
  
  setTimeout
( function(){
    $("#link_"+id).css( { display: "none"} )
  }, 500);
  
  if 
(return_code == 200) {
    $('#link_'+id).html('Добавлено.');
  }
  if (return_code == 301) {
    alert('Уже есть.');
  }
  if (return_code == "") {
    alert('Ошибка оброботки запроса.');
  }
}


маленький пример от меня люблю билиотеку jQuery за ее удобство и производительность с кросс платформеностю

Цитата
Как он узнает где была нажата кнопка и куда вывести сообщение?

PHP
<a id="link_19" href="javascript:join_bookmark(19);">[ Добавить в закладки ]</a>

индекс ставим и все путем найдет

PHP
$id = intval($id);
printf ( "<a id=\"link_%d\" href=\"javascript:join_bookmark(%d);\">[ Добавить в закладки ]</a>", $id, $id);


ajax.php
PHP
<?php

if 
(!isset($_POST['action'])) die();

switch ($_POST['action']){ 
    case 
"bookmark": {
        if (empty($_POST['id']))
        {
            $friend_id = intval($_POST['id']);
            $my_id = intval($data['myid']);
            
            
// SELECT * FROM bookmark WHERE my_id = '11' ORDER BY friend_id ASC
            if (!$result = mysql_query("SELECT * FROM bookmark WHERE my_id = '$my_id' AND friend_id = '$friend_id' LIMIT 1"))
            {
              die(); // Error
            }
            if ( mysql_num_rows($result) > 0  )
            {
                die("301");
            }
            elseif ( mysql_query("INSERT INTO (my_id, friend_id) VALUE ('$my_id', '$friend_id')")  )
            {
               die("200");
            }
        }
    }
    break;

    //default :{
    //    
    //}
}

Спустя 7 минут, 17 секунд (12.07.2009 - 00:19) twin написал(а):
Код
<html>
<head>
<script type="text/javascript" language="javascript">
var req = Create();

function ge(id)
{
return document.getElementById(id);
}

function Create()

if (navigator.appName == "Microsoft Internet Explorer")

req = new ActiveXObject("Microsoft.XMLHTTP"); 
} else { 
req = new XMLHttpRequest(); 

return req; 


function Request(query)
{
req.open('post', 'ajax.php' , true );
req.onreadystatechange = Refresh;
req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8");
req.send(query); 


function Refresh()
{
if( req.readyState == 4 ) 
ge('ajax').innerHTML = req.responseText;

else
ge('ajax').innerHTML = '<img src="prel.gif" />';

}

function Pusk(id)

var query; 

query ='id='+id;
Request(query);
}
</script>
</head>
<body>
<div id="ajax"></div>
<img src="prel.gif" width="1" height="1" />
<?
 
include 'config.php';


    $result = mysql_query("SELECT `id`, `title` FROM `table` LIMIT 20 ", $db);
    if(mysql_num_rows($result) > 0)
        while($myrow = mysql_fetch_array($result))
        echo '<div>Заголовок: '.$myrow["title"].'<br /> 
        <a href="javascript:Pusk('.$myrow["id"].');">Добавить в закладки (номер '.$myrow["id"].')!</a></div>';
        else 
        echo 'В базе ничего нет!';
</body>
</html>


ajax.php
PHP
<?php
$id 
= !empty($_POST['id'])?$_POST['id']:NULL;
mysql_query("INSERT INTO bookmark SET `id_bookmark`='".(int)$id."'");
echo 'Страница '.$id.' добавлена в закладки';




Цитата
люблю билиотеку jQuery за ее удобство и производительность с кросс платформеностю

а я не люблю её в аяксе. Из за двух строчек кода такая гиря.

welbox2
Кошелек в подписи biggrin.gif

Спустя 7 минут, 41 секунда (12.07.2009 - 00:27) PandoraBox2007 написал(а):
Цитата (twin @ 11.07.2009 - 21:19)
а я не люблю её в аяксе. Из за двух строчек кода такая гиря.

незабывай эта гиря кроссплатформена гугль хром, лиса, опера, Safari

Спустя 7 минут, 59 секунд (12.07.2009 - 00:35) twin написал(а):
Я тот скрипт, что привел , больше года уже гоняю. Ни разу не подвел.
jQuery отличная вещь, но один аякс строить на ней неоптимально имхо.

Спустя 44 минуты, 17 секунд (12.07.2009 - 01:19) kirik написал(а):
Согласен с twinом, что нет смысла в jQuery если нужен только аякс.
Но, twin, есть недостаток в том скрипте что ты привел. Я сам нечто похожее юзал недавно, пока не столкнулся с проблемой парелельного выполнения запросов. Переменная req, которая хранит указатель на соединение используется всеми скриптами на странице, тоесть если выполнить несколько раз функцию Request(query) с разными параметрами, то результат может быть неожиданным.

Спустя 7 часов, 2 минуты, 9 секунд (12.07.2009 - 08:21) twin написал(а):
Вообще это не полный вариант, только основа, сам способ передачи-приема. Дальше дело фантазии. Если нужно несколько запросов, на разные скрипты, то ставится переключатель. От двойных кликов - блокировка. Это еще две строчки всего.

PS Вот тут пример валидации. Два вида проверки и выбор географии на одном скрипте.
Писано на коленках, но аякс там работает.

Спустя 4 часа, 47 минут, 49 секунд (12.07.2009 - 13:09) ИНСИ написал(а):
PandoraBox2007 спасибо за код, очень доволен тем, как ты расписал, надеюсь код работает, сейчас буду тестить. А пока вопрос. У тебя на RBKmoney есть кошелек? Просто у меня там деньги. Если нет, то как мне перевести тебе деньги?

twin тоже спасибо за код, я бы выбрал его, но к сожалению правильно подметили. что результат будет неожиданным если .....

А пример ты недоработал. Если бы ты доработал, я бы тебе тоже перевел но..... наверное в следующем вопросе переведу тебе =)) если ты распишешь =))))) потому что у меня очень много вопрос, на которые я бы хотел найти ответ с КОММЕНТАРИЯМИ, которые я получил от PandoraBox.

Спустя 1 час, 1 минута, 46 секунд (12.07.2009 - 14:11) ИНСИ написал(а):
PandoraBox у меня не получилось сделать. Вот смотри что я сделал:
Свернутый текст
PHP
&#60;script type="text/javascript" language="javascript">
function join_bookmark(id)
{
  var return_code = "";
  $('#link_'+id).val();
  $('#link_'+id).attr ('href','#');
  $('#link_'+id).html('идет Загрузка...');
  
  
/* Getting a ticket */
  $.get('<? echo $home_url; ?>/formx/addfav_tren/',  { action : 'bookmark', 'id' : id },
    function(data){
     return_code = data;
    }
  );
  /* Getting a ticket END.. */
  
  setTimeout
( function(){
    $("#link_"+id).css( { display: "none"} )
  }, 500);
  
  if 
(return_code == 200) {
    $('#link_'+id).html('Добавлено.');
  }
  if (return_code == 301) {
    alert('Уже есть.');
  }
  if (return_code == "") {
    alert('Ошибка оброботки запроса.');
  }
}
</script> 
............................
$id_tren = intval(&#


в файле ajax
Свернутый текст
PHP
if (!isset($_POST['action'])) die();
switch ($_POST['action'])
{
 
    case 
"bookmark": 
    
{
        if(empty($_POST['id']))
        {
            $tren_id = intval($_POST['id']);
            $result = mysql_query("SELECT users FROM tren WHERE id='".$tren_id."' LIMIT 1");
            if($result != TRUE) { die(); }
            else 
            
{
                $row = mysql_fetch_array($result);
                $arr = explode("|", $row{"users"}); $count_ar = count($arr);
                if($count_ar > 0)
                {
                    foreach($arr as $daten) { if ($daten[0] == $myid) $error = "stop"; }
                    if ($error != "stop")
                    {
                        $slist = $myid.'-0|'.$row{"users"};
                        $result_1 = mysql_query("UPDATE tren SET users='".$slist."' WHERE id='".$tren_id."'");
                        if($result_1 == TRUE) { die("200"); }
                        else { die(); }
                    }
                    else { die("301"); }
                }
                else 
                
{
                    $slist = $myid.'-0|';
                    $result_1 = mysql_query("UPDATE tren SET users='".$slist."' WHERE id='".$tren_id."'");
                }
            }
        }
    }
    break;
}

В общем, БД выглядет так. Таблица tren в ней заводятся статьи(id,users) где в user через | идет список людей, которые добавились на статью.  

В общем, нажимаю на кнопку добавить в закладки, НИЧЕГО не происходит, что-то неверно?

Спустя 2 часа, 46 минут, 26 секунд (12.07.2009 - 16:57) PandoraBox2007 написал(а):
PHP
if (!empty($_POST['id']))


в спешке условие неверное сделал

библиотека для поддержки джекверти тут http://code.google.com/p/jqueryjs/download...ry-1.3.2.min.js

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

Спустя 1 час, 4 минуты, 52 секунды (12.07.2009 - 18:02) twin написал(а):
Цитата
twin тоже спасибо за код, я бы выбрал его, но к сожалению правильно подметили. что результат будет неожиданным если .....

Если что? kirik напугал сам не знамо чем biggrin.gif

Цитата
наверное в следующем вопросе переведу тебе =)) если ты распишешь =)))))
Ты что, это серъёзно? biggrin.gif
Да я давным давно уже расписал все по полочкам. Надо было поиск заюзать просто. Плюс на сайте своем выложил. Если после этого тебе не понятно ничего - мой тебе совет. Зарабатывай деньги другим способом, не трать время. А на них покупай готовые решения. Иди заказывай сайты. Так ты далеко не уедешь.

Спустя 33 минуты, 15 секунд (12.07.2009 - 18:35) ИНСИ написал(а):
PandoraBox2007 я тоже это заметил, исправил, но все равно не работает. Такое ощущение будто сама кнопка не работает.

Свернутый текст
PHP
&#60;script type="text/javascript" language="javascript">
function join_bookmark(id)
{
  var return_code = "";
  $('#link_'+id).val();
  $('#link_'+id).attr ('href','#');
  $('#link_'+id).html('идет Загрузка...');
  
  
/* Getting a ticket */
  $.get('<? echo $home_url; ?>/formx/addfav_tren/',  { action : 'bookmark', 'id' : id },
    function(data){
     return_code = data;
    }
  );
  /* Getting a ticket END.. */
  
  setTimeout
( function(){
    $("#link_"+id).css( { display: "none"} )
  }, 500);
  
  if 
(return_code == 200) {
    $('#link_'+id).html('Добавлено.');
  }
  if (return_code == 301) {
    alert('Уже есть.');
  }
  if (return_code == "") {
    alert('Ошибка оброботки запроса.');
  }
}


Свернутый текст
PHP
$id_tren = intval($myrow_trenning['id']);
printf('<a id="link_'.$id_tren.'" href="javascript:join_bookmark('.$id_tren.');">Добавить в Закладки</a>');


Свернутый текст
PHP
if (!isset($_POST['action'])) die();
$myid = 2;
switch ($_POST['action'])
{
 
    case 
"bookmark": 
    
{
        if(!empty($_POST['id']))
        {
            $tren_id = intval($_POST['id']);
            $result = mysql_query("SELECT id,users FROM tren WHERE id='".$tren_id."'");
            if($result != TRUE) { die(); }
            else 
            
{
                $row = mysql_fetch_array($result);
                $arr = explode("|", $row{"users"}); $count_ar = count($arr);
                if($count_ar > 0)
                {
                    foreach($arr as $daten) { if ($daten[0] == $myid) $error = "stop"; }
                    if ($error != "stop")
                    {
                        $slist = $myid.'-0|'.$row{"users"};
                        $result_1 = mysql_query("UPDATE tren SET users='".$slist."' WHERE id='".$tren_id."'");
                        if($result_1 == TRUE) { die("200"); }
                        else { die(); }
                    }
                    else { die("301"); }
                }
                else 
                
{
                    $slist = $myid.'-0|';
                    $result_1 = mysql_query("UPDATE tren SET users='".$slist."' WHERE id='".$tren_id."'");
                }
            }
        }
    }
    break;
}


не работает. Даже ошибки никакой не выдает почему-то? Плиз помогииии. очень срочно надо.....

twin я знаю php до уровня, который позволяет кормить себя и свою семью. Как в любом деле всегда надо улучшать свои знания, что я и делаю. За это я готов платить когда надо.

Да, ваш сайт крутой, МНОГО полезного и я понял тот пример, который ты дал! Но Я СОВСЕМ не разбираюсь в ява, поэтому и не могу сам сделать изменения в коде. Поэтому и прошу помощи у вас... и по поводу оплаты за ваш труд, то я думаю это ПРАВИЛЬНО потому что каждый труд ДОЛЖЕН быть оплачен.

Спустя 5 минут, 15 секунд (12.07.2009 - 18:40) twin написал(а):
Цитата
Такое ощущение будто сама кнопка не работает.

А саму библиотеку то подключил? И вообще, не мучайся ты с ней. я же тремя постами выше сделал полностью готовый скрипт. И PandoraBox2007 уже написал похожий в другой ветке. Без фреймворка.

PS
Цитата
Но Я СОВСЕМ не разбираюсь в ява,
Это не есть гут. Но раз ты кормишь этим семью, могу прокомментить каждую строчку еще раз.

Спустя 58 минут, 32 секунды (12.07.2009 - 19:39) ИНСИ написал(а):
twin твой код тоже самое =)) то есть видать я что-то не то делаю раз не работает.

Решил выложить всю страницу, посмотри пожалуйста
Свернутый текст
HTML
<?
require_once '../../data/db.php';
require_once '../../language/russian.php';
require_once '../../ini.php';

if (isset($_GET{'id'})) { $id = $_GET{'id'}; }
$result_trenning = mysql_query("SELECT id,author,text,title,date_tren,date_out,price FROM trenning LIMIT 10",$db);
if(mysql_num_rows($result_trenning) > 0)
{
$myrow_trenning = mysql_fetch_array($result_trenning);
}
?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />
<title>Треннинги</title>
<link href="<? echo $home_url; ?>/css/style/" rel="stylesheet" type="text/css">

<script type="text/javascript" language="javascript">
var req = Create();

function ge(id)
{
return document.getElementById(id);
}

function Create()
{
if (navigator.appName == "Microsoft Internet Explorer")
{
req = new ActiveXObject("Microsoft.XMLHTTP");
} else {
req = new XMLHttpRequest();
}
return req;
}

function Request(query)
{
req.open('<? echo $home_url; ?>/betacom/modules/addfav_tren.php', 'ajax.php' , true );
req.onreadystatechange = Refresh;
req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8");
req.send(query);
}

function Refresh()
{
if( req.readyState == 4 )
ge('ajax').innerHTML = req.responseText;

else
ge('ajax').innerHTML = 'идет загрузка ...';

}

function Pusk(id)
{
var query;

query ='id='+id;
Request(query);
}
</script>

</head>

<body>
<!-- Wrapper begins!-->
<? include("top.php"); ?>

<!-- Header ends!-->




<!-- Main katalog begins!-->
<div id="main_katalog">

<?
do
{
$res_us = mysql_query("SELECT id,ico,name,firstname FROM users WHERE id='".$myrow_trenning['author']."'");
$row_us = mysql_fetch_array($res_us);

printf('
<div class="kat_box">
<div class="kat_box_check"><input name="chek" type="checkbox" value="%s" /></div>
<div class="kat_box_title"><a href="'.$home_url.'/tren-%s/">%s</a></div>
<div class="kat_box_author">%s %s</div>
<div class="kat_box_date">%s</div>
<div class="kat_box_price">%s</div>
<div class="kat_box_online">
<div id="ajax"></div>
<a href="javascript:Pusk(%s);">Добавить в Закладки</a>
</div>
</div>
',$myrow_trenning['id'],$myrow_trenning['id'],$myrow_trenning['title'],$row_us['name'],$row_us['firstname'],$myrow_trenning['date_tren'],$myrow_trenning['price'],$myrow_trenning['id']);
}
while($myrow_trenning = mysql_fetch_array($result_trenning));
?>

</div> <!-- Main katalog ends!-->


<!-- Main katalog right begins!-->
<div id="main_katalog_right">

<h2>Объявления</h2>


</div>
<!-- Main katalog right ends!-->

<div id="footer">
<div class="adress">
jhgvjvw
</div>

</div>

<div class="clear"></div>

</div>
<!-- Wrapper ends!-->

</body>
</html>



PHP
$id = !empty($_POST['id'])?$_POST['id']:NULL;
echo $id;


НИЧЕГО не происходит! Просто нажимаю и НИЧЕГО!, Плиз.... помогите =))

Спустя 30 минут, 1 секунда (12.07.2009 - 20:09) kirik написал(а):
Цитата (welbox2 @ 12.07.2009 - 05:09)
twin тоже спасибо за код, я бы выбрал его, но к сожалению правильно подметили. что результат будет неожиданным если .....

welbox2, в данном конкретном случае результат будет очень даже ожиданным, если....

Цитата (twin @ 12.07.2009 - 10:02)
kirik напугал сам не знамо чем

twin, прошу прощения, в случае welbox2 отлично отработает! smile.gif Если интересно когда могут возникнуть непонятки, могу отписать.

welbox2, тебе самому приятно листать свои простыни? Заключай пожалуйста код в тэги [mоre]код[/mоre] кнопкой user posted image

А вообще у вас тут какой-то нездоровый конкурс...

Спустя 9 минут, 9 секунд (12.07.2009 - 20:18) twin написал(а):
Цитата
А вообще у вас тут какой-то нездоровый конкурс...

Факт. biggrin.gif мне тоже потянуло...

Цитата
twin твой код тоже самое =))

Чур тебя!!! Какой же это мой код? Где ты видел в моём коде do... while и printf?
Убери все это нафиг. Запусти как есть у меня, только запрос поменяй.
И не приписывай мне славы г-на Попова, я скромный человек, таких шедевров писать не умею.

Спустя 12 минут, 59 секунд (12.07.2009 - 20:31) ИНСИ написал(а):
twin я нашел ошибку, то есть моя глупость, вот тут было неправильно
PHP
req.open('post''<? echo $home_url; ?>/addfav_tren/'true );


единственное, теперь вопрос в другом. У меня выводится 10 постов, и если я нажимаю добавить на 9 посте, то сообщение показывается на первом. Как это исправить?

Спустя 6 минут, 46 секунд (12.07.2009 - 20:38) twin написал(а):
Для начала нужно исправить весь твой код. Привести в человеческий вмд. Потом я покажу как дальше.

Спустя 15 минут, 7 секунд (12.07.2009 - 20:53) ИНСИ написал(а):
я сделал как ты сказал. вот
PHP
$result mysql_query("SELECT id,title FROM trenning LIMIT 20 "$db);
            if(
mysql_num_rows($result) > 0)
            {
                while(
$myrow mysql_fetch_array($result))
                {
                    echo 
'<div id="ajax"></div><div>Заголовок: '.$myrow["title"].'<br /> 
                    <a href="javascript:Pusk('
.$myrow["id"].');">Добавить в закладки (номер '.$myrow["id"].')!</a></div>';
                }
            }
            else { echo 
'В базе ничего нет!'; }


как теперь настроить????

Спустя 14 минут, 23 секунды (12.07.2009 - 21:07) twin написал(а):
Ничего то ты не понял. Ну да как хочешь, дело хозяйское. Можешь и дальше юзать привычный do.. while и протчая, пока жареный петух не клюнет.

Тебе надо, чтобы сообщение о закладках выводилось рядом с тестом? нужно добавить рядом с ним приемник, допустим <span> и писать ответ в нужный. вот примерно так:

Свернутый текст
Код
<html>
<head>
<script type="text/javascript" language="javascript">
var req = Create();
// Объявляем переменную глобальной
var answer;

function ge(id)
{
return document.getElementById(id);
}

function Create()
{
if (navigator.appName == "Microsoft Internet Explorer")
{
req = new ActiveXObject("Microsoft.XMLHTTP");
} else {
req = new XMLHttpRequest();
}
return req;
}

function Request(query)
{
req.open('post', 'ajax.php' , true );
req.onreadystatechange = Refresh;
req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8");
req.send(query);
}

function Refresh()
{
if( req.readyState == 4 )
// Пишем туда, куда нужно.
ge(answer).innerHTML = req.responseText;

else
ge(answer).innerHTML = '<img src="prel.gif" />';

}

function Pusk(id)
{
var query;
// Выбираем нужный приемник
answer = 'answer_'+id;
query ='id='+id;
Request(query);
}
</script>
</head>
<body>
<div id="ajax"></div>
<img src="prel.gif" width="1" height="1" />
<?

include 'config.php';


   $result = mysql_query("SELECT `id`, `title` FROM `table` LIMIT 20 ", $db);
   if(mysql_num_rows($result) > 0)
       while($myrow = mysql_fetch_array($result))
       echo '<div>Заголовок: '.$myrow["title"].'<br />
       <a href="javascript:Pusk('.$myrow["id"].');">Добавить в закладки (номер '.$myrow["id"].')!</a>
 <br><span id="answer_'.$myrow["id"].'"></span></div>';
       else
       echo 'В базе ничего нет!';
</body>
</html>

Спустя 8 минут, 13 секунд (12.07.2009 - 21:16) ИНСИ написал(а):
twin ОГРОМНОЕ СПАСИБО! Все работает и главное ЧТО НАДО! Куда мне перевести деньги? на rbk есть? если нет, то как мне перекинуть тебе и куда?

единственное у меня вопрос. А чем можно заменить do, while? и что ты имел ввилу исправить код и на какой можно его исправить?

Спустя 12 минут, 28 секунд (12.07.2009 - 21:28) twin написал(а):
Цитата
А чем можно заменить do, while? и что ты имел ввилу исправить код и на какой можно его исправить?

Ну хотя бы так, в первом приближении:
Свернутый текст
Код
<?
require_once '../../data/db.php';
require_once '../../language/russian.php';
require_once '../../ini.php';

$id = isset($_GET{'id'})?$_GET{'id'}:NULL;

$result_trenning = mysql_query("SELECT `id`,`author`,`text`,`title`,date_tren`,`date_out`,`price`
       FROM trenning LIMIT 10",$db);
       
if(mysql_num_rows($result_trenning) > 0)
{
$myrow_trenning = mysql_fetch_assoc($result_trenning);
}
?>

<html>
<head>
<script type="text/javascript" language="javascript">
var req = Create();
// Объявляем переменную глобальной
var answer;

function ge(id)
{
return document.getElementById(id);
}

function Create()
{
if (navigator.appName == "Microsoft Internet Explorer")
{
req = new ActiveXObject("Microsoft.XMLHTTP");
} else {
req = new XMLHttpRequest();
}
return req;
}

function Request(query)
{
req.open('post', 'ajax.php' , true );
req.onreadystatechange = Refresh;
req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8");
req.send(query);
}

function Refresh()
{
if( req.readyState == 4 )
// Пишем туда, куда нужно.
ge(answer).innerHTML = req.responseText;

else
ge(answer).innerHTML = '<img src="prel.gif" />';

}

function Pusk(id)
{
var query;
// Выбираем нужный приемник
answer = 'answer_'+id;
query ='id='+id;
Request(query);
}
</script>
</head>
<body>

<!-- Wrapper begins!-->
<? include("top.php"); ?>

<!-- Header ends!-->

<!-- Main katalog begins!-->
<div id="main_katalog">

<?


  $result = mysql_query("SELECT `id`, `ico`, `name`, `firstname`
          FROM users WHERE id='".(int)$myrow_trenning['author']."'", $db);
 
  if(mysql_num_rows($result) > 0)
 
      while($myrow = mysql_fetch_assoc($result))
   
echo '<div class="kat_box">
<div class="kat_box_check"><input name="chek" type="checkbox" value="'.$myrow_trenning['id'].'" /></div>
<div class="kat_box_title"><a href="'.$home_url.'/tren-'.$myrow_trenning['id'].'/">'.$myrow_trenning['title'].'</a></div>
<div class="kat_box_author">'.$row_us['name'].' '.$row_us['firstname'].'</div>
<div class="kat_box_date">'.$myrow_trenning['date_tren'].'</div>
<div class="kat_box_price">'.$myrow_trenning['price'].'</div>
<div class="kat_box_online">
<span id="answer_'.$myrow["id"].'"></span>
<a href="javascript:Pusk('.$myrow["id"].');">
</div>
</div>';

  else
  echo 'В базе ничего нет!';
   
?>
<img src="prel.gif" width="1" height="1" />
</body>
</html>


А кашелёк в подписи biggrin.gif biggrin.gif

Спустя 1 час, 42 минуты, 45 секунд (12.07.2009 - 23:11) ИНСИ написал(а):
Тема закрыта! Огромное спасибо всем за помощь. Деньги достались twin!
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.