Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > JavaScript: Общие вопросы > ajax


Автор: MrDmitry 2.9.2009, 12:26
сорри если не тот вопрос. Сообвственно вопрос в следующем

Можжно ли через ajax выполнить функцию PHP??
Например есть такая функция

Код

function test()
{
Echo "Пример";
}


через ajax можно обратится к этой функции чтоб вывелось "Пример"?

Автор: brother79 2.9.2009, 12:52
Ну а что тебе мешает аяксом дёрнуть любой php файл, который выплюнет что надо, и потом с этим делай, что тебе нужно.

Или я вопроса не понял?

Автор: MrDmitry 2.9.2009, 13:07
Как это дернуть файл??

Автор: brother79 2.9.2009, 13:39
Ну аякс - это когда ты яваскриптом вызываешь какую-то страничку на сервере, она тебе что-то возвращает и ты с этим делаешь что-то, страница может вернуть просто html, который можно использовать, вплоть до вставки в текущийц док-т в какой-то див или текст чтобы тебе его парсить, или json объект, тогда он парсится сам и ты к нему как к объекту или массиву обрыщыешься, или скрипт, котоый по возвращению сам выполняется. Всё зависит от того, что ты в параметрах укажешь, при аяксе. 

На сервере может быть любой скрипт, в т.ч. и пхп, смотря на чём у тебя серверная часть.

Как аяксом пользоваться на чистом js - я счас не помню, и нету никакого желания синтаксис смотреть, там надо объект какой-то создавать, параметры прописывать, заголовки всякие, и потом посылать запрос. Мы раньше пользовались библиотекой prototype, сейчас jquery, там аякс используеься проще, этот объект создаётся за кадром.

Судя по твоему вопросу - тебе надо бы вообще почитать про аякс, как оно работает, желательно с примерами, т.к. напрашивается вывод, что ты пока с аяксом ещё не работал, а только собираешься.

ИМХО ответом тебе будет любой пример с аяксом.

Автор: bars80080 2.9.2009, 13:42
Цитата(MrDmitry @  2.9.2009,  13:07 Найти цитируемый пост)
Как это дернуть файл?? 

в аяксе, где пишется url адреса запроса, указываешь адрес своего скрипта: http:/ /server.ru/script.php

всё что в твоём скрипте в файле выдаёт в браузер, то есть всё что в функциях echo, print, var_dump, или просто за пределами <?php ?>, всё попадёт в ответ аяксу. приняв данные, разбираешь всё что пришло

Автор: MrDmitry 2.9.2009, 22:24
Блин аякс хочется выучить но времени нет а сроки поджимают

Если кому не влом помогите ((

вот форма
Код

<form action="?page=messages&tab=outcome&send=0&messagen=1&mess='.$recep_id.'" method=post>
              <div class="agregator agregator_gold agregator_message">
                   <div class="top"><i>&nbsp;</i><u>&nbsp;</u><b>&nbsp;</b></div>
                    <div class="middle">
                       <div class="message">
                          <div class="textarea">
                           <textarea cols="100" rows="10" name="go"></textarea>
                        </div>
                     </div>
                  </div>
                   <div class="bottom"><i>&nbsp;</i><u>&nbsp;</u><b>&nbsp;</b></div>
                </div>
                <div class="message_actions">
                   <div class="send">
                   <input type=text name="link" size=80>
                   <a href="#">Отправка</a><br>
                   <a href="?page=messages&tab=outcome&send=0&messagen=1&mess='.$recep_id.'">Отправить</a>
                    <input type="submit" name="registration_submit" value="Зарегистрироваться">
                    <a href="?page=messages&tab='.$sect.'&send=0">Отменить</a>
                   </div>
                    <div class="embed">
                       <a class="media" href="#">Вставить медиа</a>
                       <a class="link" href="#">Вставить ссылку</a>
                    </div>
                 </div>
                  </form>


вот запрос
Код

//Если нажали "отправить" то отпровляем сообщение
           if (isset($_GET['messagen']))
         {
          $messagen = $_GET['messagen'];
         }
         if ($messagen==1)
         {
         $id=rand(1,900000);
         $date = time();
         $procent=0;
         $theme='';
         $state='N';
               $sql = $this->db->prepare("INSERT INTO messages (id, user_id, recipient_id, date_send, theme, message, state, procent) VALUES 
(:id, :user_id, :recipient_id, :date_send, :theme, :message, :state, :procent);");
               $sql->bindParam(':id', $id, PDO::PARAM_INT);
               $sql->bindParam(':user_id', $this->globals->user_id, PDO::PARAM_INT);
               $sql->bindParam(':recipient_id', $recep_id, PDO::PARAM_INT);
               $sql->bindParam(':date_send', $date, PDO::PARAM_INT);
               $sql->bindParam(':theme', $theme, PDO::PARAM_INT);  
               $sql->bindParam(':message', $messa, PDO::PARAM_INT); 
               $sql->bindParam(':state', $state, PDO::PARAM_INT); 
               $sql->bindParam(':procent', $procent, PDO::PARAM_INT);           
               $sql->execute();
               //переходим в исходящие сообщения
               header("Location: ?page=messages&tab=outcome");
          }

как выполнить запрос по ссылке отправить? ((
через submit все пашет

И еще подскажите хорошую книгу по ajax  smile

Автор: brother79 3.9.2009, 06:01
Начнём с того, что:

Тебе надо аякс на обычном js, какиень-дь библиотеки типа прототайпа или jquery юзаешь?

На обычный - вот что сказал гугл например, там всё расписанно, как формировать объект и делать через него запрос:

http://www.ibm.com/developerworks/ru/library/wa-ajaxintro1/

Если какой-то библиотекой, тот там как правило что-то типа ф-ии ajax с нужными параметрами одной строкой.

Автор: Ипатьев 3.9.2009, 08:19
а зачем так срочно учить ajax?
никакой ведь реальной нужды в нем нет - это просто украшение.
если такая срочность, то можно сделать обычным порядком, а со временем дописать с модным аяксом

Автор: brother79 3.9.2009, 08:59
Цитата(Ипатьев @  3.9.2009,  08:19 Найти цитируемый пост)
никакой ведь реальной нужды в нем нет - это просто украшение.



Сильно сказанно.  smile

Автор: MrDmitry 3.9.2009, 12:08
Цитата(brother79 @ 3.9.2009,  06:01)
Начнём с того, что:

Тебе надо аякс на обычном js, какиень-дь библиотеки типа прототайпа или jquery юзаешь?

На обычный - вот что сказал гугл например, там всё расписанно, как формировать объект и делать через него запрос:

http://www.ibm.com/developerworks/ru/library/wa-ajaxintro1/

Если какой-то библиотекой, тот там как правило что-то типа ф-ии ajax с нужными параметрами одной строкой.

используется jquery
Заказчик требует аякс smile

Автор: Ипатьев 3.9.2009, 12:16
Цитата(MrDmitry @  2.9.2009,  22:24 Найти цитируемый пост)
Блин аякс хочется выучить но времени нет а сроки поджимают

В этом случае порядочнее будет передать заказ тому человеку, который может выполнить требование заказчика. 
Учитывая, что Sql вы тоже не владеете.

Автор: brother79 3.9.2009, 13:01
Цитата(MrDmitry @  3.9.2009,  12:08 Найти цитируемый пост)
используется jquery
Заказчик требует аякс smile


Ну ты блин, даёшь...

Там есть

Первая ссылка, что ответил гугл:

http://habrahabr.ru/blogs/jquery/42426/

Там всё 1 строчкой делается, на любой вкус, полный комплект методов

Автор: MrDmitry 5.9.2009, 00:36
вообщем сделал так

Код

$('#send').click(function(event){        
            $('#img').html('<img src=indicator.gif id=indicator> Отправляется');
            

            $.post('processing.php', {'page': 'messages',
                                        ".$this->send()."}, function(data){
                  
                  if(data==1)
                  {
                    $('#img').text('');   
                  }
                  else
                  {
                    $('#img').html('Ошибка при передачи');  
                  }
            });
            return false;           
            });";

$this->send() вызываю свою функцию которая написана на php.
Работать не хочет (((

Код

public function send()
     {
          if($_GET['id_message']>=1)
           $_GET['id']=$_GET['id_message']+1;
          else
         $_GET['id']=1;
         $date = time();
         $procent=0;
         $theme='';
         $state='N';
               $sql = $this->db->prepare("INSERT INTO messages (id, user_id, recipient_id, date_send, theme, message, state, procent) VALUES 
(:id, :user_id, :recipient_id, :date_send, :theme, :message, :state, :procent);");
               $sql->bindParam(':id', $_GET['id'], PDO::PARAM_INT);
               $sql->bindParam(':user_id', $this->globals->user_id, PDO::PARAM_INT);
               $sql->bindParam(':recipient_id', $_GET['id_recipient'], PDO::PARAM_INT);
               $sql->bindParam(':date_send', $date, PDO::PARAM_INT);
               $sql->bindParam(':theme', $theme, PDO::PARAM_INT);  
               $sql->bindParam(':message', $_POST['go'], PDO::PARAM_INT); 
               $sql->bindParam(':state', $state, PDO::PARAM_INT); 
               $sql->bindParam(':procent', $procent, PDO::PARAM_INT);           
               $sql->execute();
               //переходим в исходящие сообщения
               header("Location: ?page=messages&tab=outcome");
      }


Что не так? (

Автор: brother79 5.9.2009, 07:26
И не будет. Не путай божий дар с яичницей.

http://docs.jquery.com/Ajax/jQuery.post

jQuery.post( url, [data], [callback], [type] ) 

Url - адрес страницы
data - параметры поста
calback - ф-я вызываемая когда страница вернёт рез-т
type - тип рез-тата, про него я как-то писал, либо текст, либо json, либо скрипт

в calback ф-ии рез-тат обработаешь, когда скрипт выполнится.

Я думал ты знаешь, что php это язык на котором пишутся страницы, выполняемые ТОЛЬКО на стороне сервера, а js - ТОЛЬКО на стороне клиента. Вот в урле-то и будет сидеть скрипт, который твою ф-ю вызовет.

Автор: MrDmitry 7.9.2009, 23:13
это снова я. Парни ну помогите ))
делаю так

          /
Код

 //Отпровляем сообщение ajax 
             if ($_GET['messagen']==1)
             {
              $js = "               
        $('#send').click(function(event){ 
         $('#send').html('<img src=indicator.gif id=indicator> Сохранение<br><br>');                                
            $.post('processing.php', {  'page': 'messages',
                                        'formtype': 'mainform', 
                                        'tab': 'outcome',
                                        'send': '0',
                                        'messagen': '1',
                                        'id_recipient':'".$_GET['id_recipient']."',
                                        'id_message'='".$_GET['id_message']."'
                                        },function(data){
                  
                  if(data==1)
                  {
                    $('#send').text('');   
                  }
                  else
                  {
                    $('#send').html('Ошибка при сохранении<br><br>');  
                  }
            });
            return false;           
            });
        ";
        $this->adddocumentready($js);
           }  


Обьект с id send есть
Код

<div class="agregator agregator_gold agregator_message">
                   <div class="top"><i>&nbsp;</i><u>&nbsp;</u><b>&nbsp;</b></div>
                    <div class="middle">
                       <div class="message">
                          <div class="textarea">
                           <textarea cols="100" rows="10" name="go"></textarea>
                        </div>
                     </div>
                  </div>
                   <div class="bottom"><i>&nbsp;</i><u>&nbsp;</u><b>&nbsp;</b></div>
                </div>
                <div class="message_actions">
                   <div class="send">
                   <input type=text name="link" size=80>
                   <a href="#">Отправка</a><br>
                   <div id="img"></div>
                   <a id="send" href="?page=messages&tab=outcome&send=0&messagen=1&id_recipient='.$_GET['id_recipient'].'&id_message='.$_GET['id_message'].'">Отправить</a>
                    <a href="?page=messages&tab='.$sect.'&send=0">Отменить</a>
                   </div>
                    <div class="embed">
                       <a class="media" href="#">Вставить медиа</a>
                       <a class="link" href="#">Вставить ссылку</a>
                    </div>
                 </div>


содержимо файла proccesing.php
Код

<?php
//Connect to databse
$db = new PDO('mysql:host='.$mysql_connection_host.'; dbname='.$mysql_connection_base.'', $mysql_connection_user, '123');    
$db->exec("SET NAMES UTF8");
$path = $_SERVER["DOCUMENT_ROOT"].DIRECTORY_SEPARATOR.'files'.DIRECTORY_SEPARATOR; 
$photo_path = $path.DIRECTORY_SEPARATOR.'photos'.DIRECTORY_SEPARATOR;   

function index()
{
    global $db;
    //Process session id
    if (isset($_POST["PHPSESSID"])) {
       
        session_id($_POST["PHPSESSID"]);               
    }
    session_start();    
    
    //Check user id
    list($id, $password) = explode('|', base64_decode($_SESSION['iflycookie'])); 
                                 
    //Processing           
    $sql = $db->prepare("SELECT password, salt FROM users where id=:id");
    $sql->bindParam(':id', $id, PDO::PARAM_INT);
    $sql->execute();
    list($basepassword, $salt) = $sql->fetch(PDO::FETCH_NUM);
    $passwordhash = md5($basepassword.$salt);  
    //If stored password is wrong
    if ($password != $passwordhash)
    {
        die("-1");
    }  
    
    switch ($_POST['formtype'])
    {
        case 'mainform':
            mainform_save($id);
            break;    
    }
    
}

function mainform_save($id)
{
    global $db;
    
    if($_GET['id_message']>=1)
           $_GET['id']=$_GET['id_message']+1;
          else
         $_GET['id']=1;
         $date = time();
         $procent=0;
         $theme='';
         $state='N';
               $sql = $this->db->prepare("INSERT INTO messages (id, user_id, recipient_id, date_send, theme, message, state, procent) VALUES (:id, :user_id, :recipient_id, :date_send, :theme, :message, :state, :procent);");
               $sql->bindParam(':id', $_GET['id'], PDO::PARAM_INT);
               $sql->bindParam(':user_id', $this->globals->user_id, PDO::PARAM_INT);
               $sql->bindParam(':recipient_id', $_GET['id_recipient'], PDO::PARAM_INT);
               $sql->bindParam(':date_send', $date, PDO::PARAM_INT);
               $sql->bindParam(':theme', $theme, PDO::PARAM_INT);  
               $sql->bindParam(':message', $_POST['go'], PDO::PARAM_INT); 
               $sql->bindParam(':state', $state, PDO::PARAM_INT); 
               $sql->bindParam(':procent', $procent, PDO::PARAM_INT);           
               $sql->execute();
               //переходим в исходящие сообщения
               header("Location: ?page=messages&tab=outcome");
   
    if($sql->errorCode()=="00000")
        echo 1;
    else
        echo 0;
 
} 

?>

не фига не работает. Где косяк? (((

Автор: brother79 8.9.2009, 06:26
В среднем коде - не понятно, это html или php, если хтмл - то какого лешего там переменные пхп, а если пхп - то где начала, почему там код хтмл?

Автор: MrDmitry 8.9.2009, 19:06
это html

переменные '.$_GET['id_recipient'].'& .$_GET['id_message'].' берутся из php кода. Да сообтвенно это и не важжно
придставим что переменных нет
'.$_GET['id_recipient'].'
'.$_GET['id_message'].'
все что передается в ссылке равно 1. суть вопроса в том как все это обработать в ajax ( 

Автор: bars80080 8.9.2009, 21:38
а представим, что в этих переменных загружается код, javascript или ещё какой.

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

Автор: MrDmitry 8.9.2009, 22:43
Сообтвенно если вам нужен весь код то вот smile

вывод 
Код

<?php
class MessagesTemplate Extends CommonTemplate
{
    public function show($data)
    {
        $out = $this->head().
        $this->bodytop().
        $data.
        $this->bodybottom();
        echo $out;
    }
    

     
     
    //Основные данные
    public function showMessages($messages)
    {
      if(!isset($_REQUEST['tab']))
       $sect = 'income';
      else
        $sect = $_REQUEST['tab'];
            
        $result = "";
          //Выводим блок для отправки сообщений
         if($_GET['send']==1){
        $say='
              <div class="agregator agregator_gold agregator_message">
                   <div class="top"><i>&nbsp;</i><u>&nbsp;</u><b>&nbsp;</b></div>
                    <div class="middle">
                       <div class="message">
                          <div class="textarea">
                           <textarea cols="100" rows="10" name="go"></textarea>
                        </div>
                     </div>
                  </div>
                   <div class="bottom"><i>&nbsp;</i><u>&nbsp;</u><b>&nbsp;</b></div>
                </div>
                <div class="message_actions">
                   <div class="send">
                   <input type=text name="link" size=80>
                   <a href="#">Отправка</a><br>
                   <div id="img"></div>
                   <a id="send" href="?page=messages&tab=outcome&send=0&messagen=1&id_recipient='.$_GET['id_recipient'].'&id_message='.$_GET['id_message'].'">Отправить</a>
                    <input type="submit" name="registration_submit" value="Отправить">
                    <a href="?page=messages&tab='.$sect.'&send=0">Отменить</a>
                   </div>
                    <div class="embed">
                       <a class="media" href="#">Вставить медиа</a>
                       <a class="link" href="#">Вставить ссылку</a>
                    </div>
                 </div>';}
              else
               $say="";
                $result .= $say;
           //Выводим пагинатор
             $this->addcss('/styles/paginator3000.css'); 
             $this->addjsfile('/js/paginator3000.js');
             foreach($messages as $message)
             {
              $pages++;
              $amout= ceil($pages / 5); // Вычисляем кол-во страниц.
               }
             $result .= '<div class="paginator" id="paginator3"></div>
                          <script type="text/javascript">
                             pag3 = new Paginator("paginator3", '.$amout.', 1, '.$_GET[pages_id].', "http://ifly/?page=messages&tab='.$sect.'&pages_id=");
                           </script>';

               
                //Отпровляем сообщение ajax 
             if ($_GET['messagen']==1)
             {
              $js = "               
        $('#send').click(function(event){ 
         $('#send').html('<img src=indicator.gif id=indicator> Сохранение<br><br>');                                
            $.post('processing.php', {  'page': 'messages',
                                        'formtype': 'mainform', 
                                        'tab': 'outcome',
                                        'send': '0',
                                        'messagen': '1',
                                        'id_recipient':'".$_GET['id_recipient']."',
                                        'id_message'='".$_GET['id_message']."'
                                        },function(data){
                  
                  if(data==1)
                  {
                    $('#saving').text('');   
                  }
                  else
                  {
                    $('#saving').html('Ошибка при сохранении<br><br>');  
                  }
            });
            return false;           
            });
        ";
        $this->adddocumentready($js);
           }  
         //Если спам обновляем бд
         if($_GET['spam']==1)
          {
           $this->spam();
          }
            
         //Перебераем массив с данными из бд
        foreach($messages as $message)
        {
            $date_time_array = getdate($message[date]);          
            $date_time_array['mday'];
            $date_time_array['mon'];
            $date_time_array['year'];
            $date_time_array['hours'];
            $date_time_array['minutes'];
            $date_time_array['seconds'];
            //Если пишим мы то выводим сообщения в золотой каяемке иначе в серой           
             if($message[speaker]==$this->globals->user_id)
              $agregator = '    <div class="commentator commentator_gold">';
             else
             $agregator= '    <div class="commentator commentator_white">';
             if($_GET[tab]=="income")
              $agregator= '    <div class="commentator commentator_white">';
             elseif($_GET[tab]=="kontacts")
             $agregator= '    <div class="commentator commentator_white">';
             elseif($_GET[tab]=="all")
              {
              if($message[speaker]==$this->globals->user_id)
              $agregator = '    <div class="commentator commentator_gold">';
              else
              $agregator= '    <div class="commentator commentator_white">';
              }
              else
              $agregator = '    <div class="commentator commentator_gold">';
              
            $result .='
               <div class="pager">
               </div>'.$agregator.'<div class="avatar">
                        <a href="#"><img src="images/temp/2.png" alt="" title=""/><span class="corner">&nbsp;</span></a>
                     </div>
                      <div class="message">
                         <div class="top"><i>&nbsp;</i><u>&nbsp;</u><b>&nbsp;</b></div>
                          <div class="middle">
                              <div class="user_info">
                       <div class="name">';
                              //Делаем подмену ссылок
                              if($sect == "all")
                         $result .='<a href="?page=userpage&id='.$message[speaker].'">'.$message[s_name].' '.$message[s_last_name].'</a></div>';
                      else
                              $result .= '<a href="?page=userpage&id='.$message[speaker].'">'.$message[name].' '.$message[lastname].'</a></div>';
                        if($sect == "kontacts")
                        {
                         $result .='<div class="actions"><a href="?page=messages&tab=all&id_recipient='.$message[speaker].'">Смотреть все сообщения</a></div>';
                        }
                        elseif($sect == "outcome")
                        {
                         $result .='<div class="actions"><a href="?page=messages&tab='.$sect.'&send=1&id_recipient='.$message[speaker].'&id_message='.$message[id].'">Ответить</a></div>';
                        }
                        else
                        {
                          if($message[speaker]==$this->globals->user_id)
                          {
                           $result .='&nbsp';
                          }
                         else
                         $result .='<div class="actions"><a href="?page=messages&tab='.$sect.'&send=1&id_recipient='.$message[speaker].'&id_message='.$message[id].'">Ответить</a>
                         <a href="?page=messages&tab='.$sect.'&spam=1&id_recipient='.$message[speaker].'&procents='.$message[procents_message].'&procents_user='.$message[procents_user].'&id_message='.$message[id].'&messages_send='.$message[message].'">Это спам</a></div>';
                        }
                         $result .='
                        <span class="date">
                            '.$date_time_array['mday'].'.'.$date_time_array['mon'].'.'.
                            $date_time_array['year'].' в '.$date_time_array['hours'].':'.$date_time_array['minutes'].'
                        </span>    
                    </div>
                     <div class="text">
                    '.$message[message].'<br>
                    </div>
                          </div>
                           <div class="bottom"><i>&nbsp;</i><u>&nbsp;</u><b>&nbsp;</b></div>
                        </div>
                     </div>';
           //Отмичаем сообщения прочтенными
         $sql = $this->db->prepare("UPDATE messages  SET messages.state='Y'
              WHERE  STATE='N'");
             $sql->execute();
        }
        $result .= '<div class="paginator" id="paginator2"></div>
                          <script type="text/javascript">
                             pag3 = new Paginator("paginator2", '.$amout.', 1, '.$_GET[pages_id].', "http://ifly/?page=messages&tab='.$sect.'&pages_id=");
                           </script></div>';
        return $result;
    }
}
?>


функции
Код

<?php
include 'MessagesTemplate.php';
class Messages Extends MessagesTemplate
{             
    private $output;
    
        
    //Если нажали "отправить" то отпровляем сообщение
    public function send()
     {
          if($_GET['id_message']>=1)
           $_GET['id']=$_GET['id_message']+1;
          else
         $_GET['id']=1;
         $date = time();
         $procent=0;
         $theme='';
         $state='N';
               $sql = $this->db->prepare("INSERT INTO messages (id, user_id, recipient_id, date_send, theme, message, state, procent) VALUES (:id, :user_id, :recipient_id, :date_send, :theme, :message, :state, :procent);");
               $sql->bindParam(':id', $_GET['id'], PDO::PARAM_INT);
               $sql->bindParam(':user_id', $this->globals->user_id, PDO::PARAM_INT);
               $sql->bindParam(':recipient_id', $_GET['id_recipient'], PDO::PARAM_INT);
               $sql->bindParam(':date_send', $date, PDO::PARAM_INT);
               $sql->bindParam(':theme', $theme, PDO::PARAM_INT);  
               $sql->bindParam(':message', $_POST['go'], PDO::PARAM_INT); 
               $sql->bindParam(':state', $state, PDO::PARAM_INT); 
               $sql->bindParam(':procent', $procent, PDO::PARAM_INT);           
               $sql->execute();
               //переходим в исходящие сообщения
               header("Location: ?page=messages&tab=outcome");
      }
    
    //спам
    public function spam()
     {
       $error=1;
          if($_COOKIE[id]==$_GET['id_message'])
          { 
           $error++;
          } 
           else
          {
            //создаем куку на сутки о том что кнопка "отправить спам уже была нажата 1 раз"
             setcookie("id", $_GET['id_message'], time() +86400);
           if($_GET['procents']>=5)
            {
            $_GET['procents_user']++;
            $sql1 = $this->db->prepare("DELETE FROM messages WHERE messages.procent=5");
            $sql1->execute();
             $sql = $this->db->prepare("UPDATE messages SET messages.procent='0'
               WHERE messages.user_id='$_GET[id_recipient]'' AND messages.message='$_GET[messages_send]'");
               $sql->execute();
             $sql = $this->db->prepare("UPDATE users SET users.procent='$_GET[procents_user]'
               WHERE users.id='$_GET[id_recipient]'");
               $sql->execute();
            }
          elseif($_GET['procents']<=6)
           {
            $_GET['procents']++;
              $sql = $this->db->prepare("UPDATE messages SET messages.procent='$_GET[procents]'
               WHERE messages.user_id='$_GET[id_recipient]' AND messages.message='$_GET[messages_send]'");
               $sql->execute();
           }
          if($_GET['procents_user']==5) 
           {
              $sql = $this->db->prepare("UPDATE users SET users.ban='1'
               WHERE users.id='$_GET[id_recipient]'");
               $sql->execute();
           }
          } 
          header("Location: ?page=messages&tab=income");
     }
    
    //Выборка и вывод сообщений
    public function index()
    {     
        $section = "income";
        if(isset($_REQUEST['tab']))
            $section = $_REQUEST['tab'];
        $_GET[pages_id] = "1";
        if(isset($_REQUEST['pages_id']))
            $section = $_REQUEST['pages_id'];
        
        $messages = array();
        $sql = ""; 
        $p=$_GET[pages_id]*10;
        if($section == "income") 
            $sql = $this->db->prepare("SELECT m.id, u.name,u.lastname,m.user_id as speaker,m.date_send as date,m.theme,m.message,m.state,  m.procent as procents_message, u.procent as procents_user
             FROM messages m,users u WHERE m.recipient_id=:user_id AND u.id=m.user_id ORDER BY m.date_send desc ");          
        else
            $sql = $this->db->prepare("SELECT m.id, u.name,u.lastname,m.recipient_id as speaker,m.date_send as date,m.theme,m.message,m.state,   m.procent 
             FROM messages m,users u WHERE m.user_id=:user_id AND u.id=m.recipient_id ORDER BY m.date_send desc LIMIT 1,10");
        if($section == "kontacts")
            $sql = $this->db->prepare("SELECT DISTINCT users.id as speaker, users.name, users.lastname
             FROM 
              (
               (
                SELECT messages.user_id id
                FROM messages, users
                WHERE recipient_id=:user_id
                ORDER BY messages.date_send desc 
                )
              UNION 
               (
                SELECT recipient_id
                FROM messages, users
                WHERE messages.user_id=:user_id
                ORDER BY messages.date_send desc 
               )
              ) mess 
            INNER JOIN users
            ON users.id=mess.id");
         if($section == "all") 
           $sql = $this->db->prepare("select m.message, sender.id, m.id, m.date_send
          , sender.name s_name
          , sender.lastname s_last_name
          , recipient.name r_name
          , recipient.lastname r_last_name
           from  messages m, users sender, users recipient
           where  m.user_id = sender.id
           and  m.Recipient_id = recipient.id
           and  m.user_id in (:user_id, $_GET[id_recipient])
          and  m.Recipient_id in (:user_id, $_GET[id_recipient])
          ORDER BY m.date_send desc");
                    
        $sql->bindParam(':user_id', $this->globals->user_id, PDO::PARAM_INT);
        $sql->execute();  
        $messages = $sql->fetchAll();
        
        $this->output = $this->showMessages($messages);
        $this->show($this->output);
      }
      
    public function path()
    {
        return 'Моя страница > Сообщения > '.$this->getSection();
    }
    
    public function getSection()
    {
        if(!isset($_REQUEST['tab']))
            $section = 'income';
        else
            $section = $_REQUEST['tab'];
        switch($section)
        { 
            case 'kontacts':
                return 'Контакты';
            case 'income':
                return 'Входящие';
            case 'outcome':
                return 'Исходящие';
            case 'all':
                return 'Контакты';
        }    
    }
    
    public function topMenu()
    {
        return '
        <div class="profile_actions"><div class="profile_actions_in">
        <a href="?page=messages&tab=kontacts">Контакты</a>
        <a href="?page=messages&tab=income">Входящие</a>
        <a href="?page=messages&tab=outcome">Исходящие</a></div></div>
        ';
    }
}
?>


аякс
<?php
//Connect to databse
Код

$db = new PDO('mysql:host='.$mysql_connection_host.'; dbname='.$mysql_connection_base.'', $mysql_connection_user, '123');    
$db->exec("SET NAMES UTF8");
$path = $_SERVER["DOCUMENT_ROOT"].DIRECTORY_SEPARATOR.'files'.DIRECTORY_SEPARATOR; 
$photo_path = $path.DIRECTORY_SEPARATOR.'photos'.DIRECTORY_SEPARATOR;   

function index()
{
    global $db;
    //Process session id
    if (isset($_POST["PHPSESSID"])) {
       
        session_id($_POST["PHPSESSID"]);               
    }
    session_start();    
    
    //Check user id
    list($id, $password) = explode('|', base64_decode($_SESSION['iflycookie'])); 
                                 
    //Processing           
    $sql = $db->prepare("SELECT password, salt FROM users where id=:id");
    $sql->bindParam(':id', $id, PDO::PARAM_INT);
    $sql->execute();
    list($basepassword, $salt) = $sql->fetch(PDO::FETCH_NUM);
    $passwordhash = md5($basepassword.$salt);  
    //If stored password is wrong
    if ($password != $passwordhash)
    {
        die("-1");
    }  
    
    switch ($_POST['formtype'])
    {
        case 'mainform':
            mainform_save($id);
            break;    
    }
    
}

function mainform_save($id)
{
    global $db;
    
    if($_GET['id_message']>=1)
           $_GET['id']=$_GET['id_message']+1;
          else
         $_GET['id']=1;
         $date = time();
         $procent=0;
         $theme='';
         $state='N';
               $sql = $this->db->prepare("INSERT INTO messages (id, user_id, recipient_id, date_send, theme, message, state, procent) VALUES (:id, :user_id, :recipient_id, :date_send, :theme, :message, :state, :procent);");
               $sql->bindParam(':id', $_GET['id'], PDO::PARAM_INT);
               $sql->bindParam(':user_id', $this->globals->user_id, PDO::PARAM_INT);
               $sql->bindParam(':recipient_id', $_GET['id_recipient'], PDO::PARAM_INT);
               $sql->bindParam(':date_send', $date, PDO::PARAM_INT);
               $sql->bindParam(':theme', $theme, PDO::PARAM_INT);  
               $sql->bindParam(':message', $_POST['go'], PDO::PARAM_INT); 
               $sql->bindParam(':state', $state, PDO::PARAM_INT); 
               $sql->bindParam(':procent', $procent, PDO::PARAM_INT);           
               $sql->execute();
               //переходим в исходящие сообщения
               header("Location: ?page=messages&tab=outcome");
   
    if($sql->errorCode()=="00000")
        echo 1;
    else
        echo 0;
 
} 

?>



Нужно чтоб сообщения добовлялись в БД. они в принципе добовляются через submit и вызов функции $this->send();
но нужно именно через аякс JQuery

Автор: bars80080 8.9.2009, 23:57
Цитата(MrDmitry @  8.9.2009,  22:43 Найти цитируемый пост)
но нужно именно через аякс JQuery 

послушайте, вы с какого конца не поняли предложение 
Цитата(bars80080 @  8.9.2009,  21:38 Найти цитируемый пост)
если вопрос по аяксу показать не тот код, который лежит в исходнике на сервере, а тот который видит браузер?

вы видели когда-нибудь в браузере пхп-код?

Автор: MrDmitry 9.9.2009, 10:41
Код

           <!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=utf-8"/>
            <title>messages
        </title>
        <meta http-equiv="X-UA-Compatible" content="IE=8"/>
        <meta name="Keywords" content=""/>
        <meta name="Description" content=""/>        
        
            <script src="/js/jquery-1.3.2.min.js" type="text/javascript"></script>        
        <script src="/js/paginator3000.js" type="text/javascript"></script>

        <link rel="stylesheet" href="styles/layout.css" type="text/css"/>
        <!--[if IE]><link rel="stylesheet" href="styles/ie.css" type="text/css"/><![endif]--><link rel="stylesheet" href="/styles/paginator3000.css" type="text/css" />
        <script language="javascript"></script>
        </head>
        <body>
        <div class="main">
            <div class="good_login">
                <div class="good_day">

                    Доброго дня, <big>Дмитрий</big>! <small>(Мы о Вас помним, светлая память...)</small> 
                </div> 
        
                <div class="exit">
                    <a href="?page=Authorization&logout=1">Выход</a> 
                </div> 
             </div>
             <div class="main_bar">
                <div class="logo">

                    <a href="#">
                    <img src="images/logo.png" width="176" height="54" alt="iFly" title=""/>
                    <span class="slogan">Все будет хорошо. Я узнавал.</span>
                    </a>
                </div>
                <div class="search_bar">
                    <div class="search_bar_variants">
                        <b>Я ищу:</b>

                        <a href="#">Скидки</a>
                        <a href="#">В Афише</a>
                        <span class="sel">Людей</span>
                        <a href="#">Фото</a>
                        <a href="#">Видео</a>
                        <a href="#">Объявления</a>

                        <a href="#">Компании</a>
                    </div>
                    <div class="search_line">
                        <div class="search_line_in">
                            <table><tr>
                                <td><input type="text"/></td>
                                <td><input type="submit" value="Найти"/></td>
                            </tr></table>

                        </div>
                    </div>
                </div>
             </div>
        
        
        
        <div class="profile_actions"><div class="profile_actions_in">
        <a href="?page=messages&tab=kontacts">Контакты</a>
        <a href="?page=messages&tab=income">Входящие</a>
        <a href="?page=messages&tab=outcome">Исходящие</a></div></div>

        
        
        <div class="breadcrumbs">Моя страница > Сообщения > Исходящие</div>
        
       
        
              <div class="agregator agregator_gold agregator_message">
                   <div class="top"><i>&nbsp;</i><u>&nbsp;</u><b>&nbsp;</b></div>
                    <div class="middle">
                       <div class="message">
                          <div class="textarea">
                           <textarea cols="100" rows="10" name="go"></textarea>
                        </div>

                     </div>
                  </div>
                   <div class="bottom"><i>&nbsp;</i><u>&nbsp;</u><b>&nbsp;</b></div>
                </div>
                <div class="message_actions">
                   <div class="send">
                   <input type=text name="link" size=80>
                   <a href="#">Отправка</a><br>

                   <div id="img"></div>
                   <a id="send" href="?page=messages&tab=outcome&send=0&messagen=1&id_recipient=4&id_message=2">Отправить</a>
                    <input type="submit" name="registration_submit" value="Отправить">
                    <a href="?page=messages&tab=outcome&send=0">Отменить</a>
                   </div>
                    <div class="embed">
                       <a class="media" href="#">Вставить медиа</a>

                       <a class="link" href="#">Вставить ссылку</a>
                    </div>
                 </div><div class="paginator" id="paginator3"></div>
                          <script type="text/javascript">
                             pag3 = new Paginator("paginator3", 2, 1, 1, "http://ifly/?page=messages&tab=outcome&pages_id=");
                           </script>
               <div class="pager">
               </div>    <div class="commentator commentator_gold"><div class="avatar">
                        <a href="#"><img src="images/temp/2.png" alt="" title=""/><span class="corner">&nbsp;</span></a>

                     </div>
                      <div class="message">
                         <div class="top"><i>&nbsp;</i><u>&nbsp;</u><b>&nbsp;</b></div>
                          <div class="middle">
                              <div class="user_info">
                       <div class="name"><a href="?page=userpage&id=4">2 2</a></div><div class="actions"><a href="?page=messages&tab=outcome&send=1&id_recipient=4&id_message=2">Ответить</a></div>
                        <span class="date">
                            7.9.2009 в 17:3
                        </span>    
                    </div>

                     <div class="text">
                    111111111111111111111111111111111<br>
                    </div>
                          </div>
                           <div class="bottom"><i>&nbsp;</i><u>&nbsp;</u><b>&nbsp;</b></div>
                        </div>
                     </div>
               <div class="pager">

               </div>    <div class="commentator commentator_gold"><div class="avatar">
                        <a href="#"><img src="images/temp/2.png" alt="" title=""/><span class="corner">&nbsp;</span></a>
                     </div>
                      <div class="message">
                         <div class="top"><i>&nbsp;</i><u>&nbsp;</u><b>&nbsp;</b></div>
                          <div class="middle">
                              <div class="user_info">
                       <div class="name"><a href="?page=userpage&id=5">3 3</a></div><div class="actions"><a href="?page=messages&tab=outcome&send=1&id_recipient=5&id_message=2">Ответить</a></div>

                        <span class="date">
                            7.9.2009 в 16:45
                        </span>    
                    </div>
                     <div class="text">
                    не прочтенное<br>
                    </div>
                          </div>
                           <div class="bottom"><i>&nbsp;</i><u>&nbsp;</u><b>&nbsp;</b></div>

                        </div>
                     </div>
               <div class="pager">
               </div>    <div class="commentator commentator_gold"><div class="avatar">
                        <a href="#"><img src="images/temp/2.png" alt="" title=""/><span class="corner">&nbsp;</span></a>
                     </div>
                      <div class="message">
                         <div class="top"><i>&nbsp;</i><u>&nbsp;</u><b>&nbsp;</b></div>

                          <div class="middle">
                              <div class="user_info">
                       <div class="name"><a href="?page=userpage&id=1">Карим Сахибгареев</a></div><div class="actions"><a href="?page=messages&tab=outcome&send=1&id_recipient=1&id_message=3">Ответить</a></div>
                        <span class="date">
                            7.9.2009 в 1:55
                        </span>    
                    </div>
                     <div class="text">
                    фффффффффффффффффффффффффффффффффффффффффффффффффффф<br>

                    </div>
                          </div>
                           <div class="bottom"><i>&nbsp;</i><u>&nbsp;</u><b>&nbsp;</b></div>
                        </div>
                     </div>
               <div class="pager">
               </div>    <div class="commentator commentator_gold"><div class="avatar">
                        <a href="#"><img src="images/temp/2.png" alt="" title=""/><span class="corner">&nbsp;</span></a>

                     </div>
                      <div class="message">
                         <div class="top"><i>&nbsp;</i><u>&nbsp;</u><b>&nbsp;</b></div>
                          <div class="middle">
                              <div class="user_info">
                       <div class="name"><a href="?page=userpage&id=2">Александр Зорин</a></div><div class="actions"><a href="?page=messages&tab=outcome&send=1&id_recipient=2&id_message=1">Ответить</a></div>
                        <span class="date">
                            7.9.2009 в 1:54
                        </span>    
                    </div>

                     <div class="text">
                    11111111111111111111111111111111111111111111111111111111111<br>
                    </div>
                          </div>
                           <div class="bottom"><i>&nbsp;</i><u>&nbsp;</u><b>&nbsp;</b></div>
                        </div>
                     </div>
               <div class="pager">

               </div>    <div class="commentator commentator_gold"><div class="avatar">
                        <a href="#"><img src="images/temp/2.png" alt="" title=""/><span class="corner">&nbsp;</span></a>
                     </div>
                      <div class="message">
                         <div class="top"><i>&nbsp;</i><u>&nbsp;</u><b>&nbsp;</b></div>
                          <div class="middle">
                              <div class="user_info">
                       <div class="name"><a href="?page=userpage&id=1">Карим Сахибгареев</a></div><div class="actions"><a href="?page=messages&tab=outcome&send=1&id_recipient=1&id_message=2">Ответить</a></div>

                        <span class="date">
                            5.9.2009 в 1:28
                        </span>    
                    </div>
                     <div class="text">
                    123<br>
                    </div>
                          </div>
                           <div class="bottom"><i>&nbsp;</i><u>&nbsp;</u><b>&nbsp;</b></div>

                        </div>
                     </div>
               <div class="pager">
               </div>    <div class="commentator commentator_gold"><div class="avatar">
                        <a href="#"><img src="images/temp/2.png" alt="" title=""/><span class="corner">&nbsp;</span></a>
                     </div>
                      <div class="message">
                         <div class="top"><i>&nbsp;</i><u>&nbsp;</u><b>&nbsp;</b></div>

                          <div class="middle">
                              <div class="user_info">
                       <div class="name"><a href="?page=userpage&id=1">Карим Сахибгареев</a></div><div class="actions"><a href="?page=messages&tab=outcome&send=1&id_recipient=1&id_message=1">Ответить</a></div>
                        <span class="date">
                            5.9.2009 в 1:16
                        </span>    
                    </div>
                     <div class="text">
                    АААААААААААААААААААААААААААААААААААААААААААААААААААААААААААААААААААААААаа<br>

                    </div>
                          </div>
                           <div class="bottom"><i>&nbsp;</i><u>&nbsp;</u><b>&nbsp;</b></div>
                        </div>
                     </div>
               <div class="pager">
               </div>    <div class="commentator commentator_gold"><div class="avatar">
                        <a href="#"><img src="images/temp/2.png" alt="" title=""/><span class="corner">&nbsp;</span></a>

                     </div>
                      <div class="message">
                         <div class="top"><i>&nbsp;</i><u>&nbsp;</u><b>&nbsp;</b></div>
                          <div class="middle">
                              <div class="user_info">
                       <div class="name"><a href="?page=userpage&id=1">Карим Сахибгареев</a></div><div class="actions"><a href="?page=messages&tab=outcome&send=1&id_recipient=1&id_message=1">Ответить</a></div>
                        <span class="date">
                            5.9.2009 в 1:14
                        </span>    
                    </div>

                     <div class="text">
                    проба<br>
                    </div>
                          </div>
                           <div class="bottom"><i>&nbsp;</i><u>&nbsp;</u><b>&nbsp;</b></div>
                        </div>
                     </div>
               <div class="pager">

               </div>    <div class="commentator commentator_gold"><div class="avatar">
                        <a href="#"><img src="images/temp/2.png" alt="" title=""/><span class="corner">&nbsp;</span></a>
                     </div>
                      <div class="message">
                         <div class="top"><i>&nbsp;</i><u>&nbsp;</u><b>&nbsp;</b></div>
                          <div class="middle">
                              <div class="user_info">
                       <div class="name"><a href="?page=userpage&id=1">Карим Сахибгареев</a></div><div class="actions"><a href="?page=messages&tab=outcome&send=1&id_recipient=1&id_message=1">Ответить</a></div>

                        <span class="date">
                            5.9.2009 в 1:14
                        </span>    
                    </div>
                     <div class="text">
                    12345<br>
                    </div>
                          </div>
                           <div class="bottom"><i>&nbsp;</i><u>&nbsp;</u><b>&nbsp;</b></div>

                        </div>
                     </div>
               <div class="pager">
               </div>    <div class="commentator commentator_gold"><div class="avatar">
                        <a href="#"><img src="images/temp/2.png" alt="" title=""/><span class="corner">&nbsp;</span></a>
                     </div>
                      <div class="message">
                         <div class="top"><i>&nbsp;</i><u>&nbsp;</u><b>&nbsp;</b></div>

                          <div class="middle">
                              <div class="user_info">
                       <div class="name"><a href="?page=userpage&id=1">Карим Сахибгареев</a></div><div class="actions"><a href="?page=messages&tab=outcome&send=1&id_recipient=1&id_message=1">Ответить</a></div>
                        <span class="date">
                            5.9.2009 в 1:13
                        </span>    
                    </div>
                     <div class="text">
                    12345<br>

                    </div>
                          </div>
                           <div class="bottom"><i>&nbsp;</i><u>&nbsp;</u><b>&nbsp;</b></div>
                        </div>
                     </div>
               <div class="pager">
               </div>    <div class="commentator commentator_gold"><div class="avatar">
                        <a href="#"><img src="images/temp/2.png" alt="" title=""/><span class="corner">&nbsp;</span></a>

                     </div>
                      <div class="message">
                         <div class="top"><i>&nbsp;</i><u>&nbsp;</u><b>&nbsp;</b></div>
                          <div class="middle">
                              <div class="user_info">
                       <div class="name"><a href="?page=userpage&id=2">Александр Зорин</a></div><div class="actions"><a href="?page=messages&tab=outcome&send=1&id_recipient=2&id_message=4">Ответить</a></div>
                        <span class="date">
                            5.9.2009 в 0:18
                        </span>    
                    </div>

                     <div class="text">
                    122222222<br>
                    </div>
                          </div>
                           <div class="bottom"><i>&nbsp;</i><u>&nbsp;</u><b>&nbsp;</b></div>
                        </div>
                     </div><div class="paginator" id="paginator2"></div>
                          <script type="text/javascript">
                             pag3 = new Paginator("paginator2", 2, 1, 1, "http://ifly/?page=messages&tab=outcome&pages_id=");
                           </script></div>

            </div>
</body>
</html>                                                                  
                                                        

Автор: brother79 9.9.2009, 11:29
Что-то смотрю последний код, вроде должен был послать код где аякс вызывается, но никаким аяксом и близко не пахнет в этом коде. Ты что вообще высылаешь?

Автор: MrDmitry 9.9.2009, 11:42
сорри немного тупанул

Код

        <html xmlns="http://www.w3.org/1999/xhtml">
        <head>
            <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
            <title>messages
        </title>
        <meta http-equiv="X-UA-Compatible" content="IE=8"/>
        <meta name="Keywords" content=""/>
        <meta name="Description" content=""/>        
        
            <script src="/js/jquery-1.3.2.min.js" type="text/javascript"></script>        
        <script src="/js/paginator3000.js" type="text/javascript"></script>

        <link rel="stylesheet" href="styles/layout.css" type="text/css"/>
        <!--[if IE]><link rel="stylesheet" href="styles/ie.css" type="text/css"/><![endif]--><link rel="stylesheet" href="/styles/paginator3000.css" type="text/css" />
        <script language="javascript">$(document).ready(function() {               
        $('#send').click(function(event){        
            $('#send').html('<img src=indicator.gif id=indicator> Сохранение<br><br>');                           
            $.post('processing.php', {  'page': 'messages',
                                        'formtype': 'mainform', 
                                        'messagen': '1',
                                        'id_recipient':'4',
                                        'id_message'='1',
                                        'date_send'='',
                                        'theme'='',
                                        'message'='',
                                        'state'='',
                                        'procent'='',
                                        },function(data){
                  
                  if(data==1)
                  {
                    $('#send').text('');   
                  }
                  else
                  {
                    $('#send').html('Ошибка при сохранении<br><br>');  
                  }
            });
            return false;           
            });
        });</script>
        </head>
        <body>
        <div class="main">
            <div class="good_login">
                <div class="good_day">

                    Доброго дня, <big>Дмитрий</big>! <small>(Мы о Вас помним, светлая память...)</small> 
                </div> 
        
                <div class="exit">
                    <a href="?page=Authorization&logout=1">Выход</a> 
                </div> 
             </div>
             <div class="main_bar">
                <div class="logo">

                    <a href="#">
                    <img src="images/logo.png" width="176" height="54" alt="iFly" title=""/>
                    <span class="slogan">Все будет хорошо. Я узнавал.</span>
                    </a>
                </div>
                <div class="search_bar">
                    <div class="search_bar_variants">
                        <b>Я ищу:</b>

                        <a href="#">Скидки</a>
                        <a href="#">В Афише</a>
                        <span class="sel">Людей</span>
                        <a href="#">Фото</a>
                        <a href="#">Видео</a>
                        <a href="#">Объявления</a>

                        <a href="#">Компании</a>
                    </div>
                    <div class="search_line">
                        <div class="search_line_in">
                            <table><tr>
                                <td><input type="text"/></td>
                                <td><input type="submit" value="Найти"/></td>
                            </tr></table>

                        </div>
                    </div>
                </div>
             </div>
        
        
        
        <div class="profile_actions"><div class="profile_actions_in">
        <a href="?page=messages&tab=kontacts">Контакты</a>
        <a href="?page=messages&tab=income">Входящие</a>
        <a href="?page=messages&tab=outcome">Исходящие</a></div></div>

        
        
        <div class="breadcrumbs">Моя страница > Сообщения > Исходящие</div>
        
       
        
              <div class="agregator agregator_gold agregator_message">
                   <div class="top"><i>&nbsp;</i><u>&nbsp;</u><b>&nbsp;</b></div>
                    <div class="middle">
                       <div class="message">
                          <div class="textarea">
                           <textarea cols="100" rows="10" name="go">Текст сообщения Дмитрию Астахову. Появляется при нажатии на “Ответить” во В ходящих (или “Сообщение” в других разделах сайта). Отображается только переписка с этим персонажем. Окно ввода появляется только при нажатии на эти две кнопки - при нажатии на “Входящие” и “Отправленные” видим только список всех сообщений  всех авторов, без окна ввода. При этом на “Входящих” помечаются цветом рамки новые сообщения (как в файле Сообщения-входящие01), появившиеся с момента последней активности (или открытия) страницы. Количество отмеченных цветом рамки сообщений - то же, что указано в нижней панели при их поступлении. Важно, чтобы на окне ввода всегда был фокус, даже после переключениия между страницами сообщений. При нажатии на Enter - отправка (на кейпаде - перевод строки).</textarea>
                        </div>

                     </div>
                  </div>
                   <div class="bottom"><i>&nbsp;</i><u>&nbsp;</u><b>&nbsp;</b></div>
                </div>
                <div class="message_actions">
                   <div class="send">
                   <input type=text name="link" size=80>
                   <a href="#">Отправка</a><br>

                   <div id="img"></div>
                   <a href="?page=messages&tab=outcome&send=1&messagen=1&id_recipient=4&id_message=1" id="send">Отправить</a>
                    <input type="submit" name="registration_submit" value="Отправить">
                    <a href="?page=messages&tab=outcome&send=0">Отменить</a>
                   </div>
                    <div class="embed">
                       <a class="media" href="#">Вставить медиа</a>

                       <a class="link" href="#">Вставить ссылку</a>
                    </div>
                 </div><div class="paginator" id="paginator3"></div>
                          <script type="text/javascript">
                             pag3 = new Paginator("paginator3", 2, 1, 1, "http://ifly/?page=messages&tab=outcome&pages_id=");
                           </script>
               <div class="pager">
               </div>    <div class="commentator commentator_gold"><div class="avatar">
                        <a href="#"><img src="images/temp/2.png" alt="" title=""/><span class="corner">&nbsp;</span></a>

                     </div>
                      <div class="message">
                         <div class="top"><i>&nbsp;</i><u>&nbsp;</u><b>&nbsp;</b></div>
                          <div class="middle">
                              <div class="user_info">
                       <div class="name"><a href="?page=userpage&id=4">2 2</a></div><div class="actions"><a href="?page=messages&tab=outcome&send=1&id_recipient=4&id_message=2">Ответить</a></div>
                        <span class="date">
                            7.9.2009 в 17:3
                        </span>    
                    </div>

                     <div class="text">
                    111111111111111111111111111111111<br>
                    </div>
                          </div>
                           <div class="bottom"><i>&nbsp;</i><u>&nbsp;</u><b>&nbsp;</b></div>
                        </div>
                     </div>
               <div class="pager">

               </div>    <div class="commentator commentator_gold"><div class="avatar">
                        <a href="#"><img src="images/temp/2.png" alt="" title=""/><span class="corner">&nbsp;</span></a>
                     </div>
                      <div class="message">
                         <div class="top"><i>&nbsp;</i><u>&nbsp;</u><b>&nbsp;</b></div>
                          <div class="middle">
                              <div class="user_info">
                       <div class="name"><a href="?page=userpage&id=5">3 3</a></div><div class="actions"><a href="?page=messages&tab=outcome&send=1&id_recipient=5&id_message=2">Ответить</a></div>

                        <span class="date">
                            7.9.2009 в 16:45
                        </span>    
                    </div>
                     <div class="text">
                    не прочтенное<br>
                    </div>
                          </div>
                           <div class="bottom"><i>&nbsp;</i><u>&nbsp;</u><b>&nbsp;</b></div>

                        </div>
                     </div>
               <div class="pager">
               </div>    <div class="commentator commentator_gold"><div class="avatar">
                        <a href="#"><img src="images/temp/2.png" alt="" title=""/><span class="corner">&nbsp;</span></a>
                     </div>
                      <div class="message">
                         <div class="top"><i>&nbsp;</i><u>&nbsp;</u><b>&nbsp;</b></div>

                          <div class="middle">
                              <div class="user_info">
                       <div class="name"><a href="?page=userpage&id=1">Карим Сахибгареев</a></div><div class="actions"><a href="?page=messages&tab=outcome&send=1&id_recipient=1&id_message=3">Ответить</a></div>
                        <span class="date">
                            7.9.2009 в 1:55
                        </span>    
                    </div>
                     <div class="text">
                    фффффффффффффффффффффффффффффффффффффффффффффффффффф<br>

                    </div>
                          </div>
                           <div class="bottom"><i>&nbsp;</i><u>&nbsp;</u><b>&nbsp;</b></div>
                        </div>
                     </div>
               <div class="pager">
               </div>    <div class="commentator commentator_gold"><div class="avatar">
                        <a href="#"><img src="images/temp/2.png" alt="" title=""/><span class="corner">&nbsp;</span></a>

                     </div>
                      <div class="message">
                         <div class="top"><i>&nbsp;</i><u>&nbsp;</u><b>&nbsp;</b></div>
                          <div class="middle">
                              <div class="user_info">
                       <div class="name"><a href="?page=userpage&id=2">Александр Зорин</a></div><div class="actions"><a href="?page=messages&tab=outcome&send=1&id_recipient=2&id_message=1">Ответить</a></div>
                        <span class="date">
                            7.9.2009 в 1:54
                        </span>    
                    </div>

                     <div class="text">
                    11111111111111111111111111111111111111111111111111111111111<br>
                    </div>
                          </div>
                           <div class="bottom"><i>&nbsp;</i><u>&nbsp;</u><b>&nbsp;</b></div>
                        </div>
                     </div>
               <div class="pager">

               </div>    <div class="commentator commentator_gold"><div class="avatar">
                        <a href="#"><img src="images/temp/2.png" alt="" title=""/><span class="corner">&nbsp;</span></a>
                     </div>
                      <div class="message">
                         <div class="top"><i>&nbsp;</i><u>&nbsp;</u><b>&nbsp;</b></div>
                          <div class="middle">
                              <div class="user_info">
                       <div class="name"><a href="?page=userpage&id=1">Карим Сахибгареев</a></div><div class="actions"><a href="?page=messages&tab=outcome&send=1&id_recipient=1&id_message=2">Ответить</a></div>

                        <span class="date">
                            5.9.2009 в 1:28
                        </span>    
                    </div>
                     <div class="text">
                    123<br>
                    </div>
                          </div>
                           <div class="bottom"><i>&nbsp;</i><u>&nbsp;</u><b>&nbsp;</b></div>

                        </div>
                     </div>
               <div class="pager">
               </div>    <div class="commentator commentator_gold"><div class="avatar">
                        <a href="#"><img src="images/temp/2.png" alt="" title=""/><span class="corner">&nbsp;</span></a>
                     </div>
                      <div class="message">
                         <div class="top"><i>&nbsp;</i><u>&nbsp;</u><b>&nbsp;</b></div>

                          <div class="middle">
                              <div class="user_info">
                       <div class="name"><a href="?page=userpage&id=1">Карим Сахибгареев</a></div><div class="actions"><a href="?page=messages&tab=outcome&send=1&id_recipient=1&id_message=1">Ответить</a></div>
                        <span class="date">
                            5.9.2009 в 1:16
                        </span>    
                    </div>
                     <div class="text">
                    АААААААААААААААААААААААААААААААААААААААААААААААААААААААААААААААААААААААаа<br>

                    </div>
                          </div>
                           <div class="bottom"><i>&nbsp;</i><u>&nbsp;</u><b>&nbsp;</b></div>
                        </div>
                     </div>
               <div class="pager">
               </div>    <div class="commentator commentator_gold"><div class="avatar">
                        <a href="#"><img src="images/temp/2.png" alt="" title=""/><span class="corner">&nbsp;</span></a>

                     </div>
                      <div class="message">
                         <div class="top"><i>&nbsp;</i><u>&nbsp;</u><b>&nbsp;</b></div>
                          <div class="middle">
                              <div class="user_info">
                       <div class="name"><a href="?page=userpage&id=1">Карим Сахибгареев</a></div><div class="actions"><a href="?page=messages&tab=outcome&send=1&id_recipient=1&id_message=1">Ответить</a></div>
                        <span class="date">
                            5.9.2009 в 1:14
                        </span>    
                    </div>

                     <div class="text">
                    проба<br>
                    </div>
                          </div>
                           <div class="bottom"><i>&nbsp;</i><u>&nbsp;</u><b>&nbsp;</b></div>
                        </div>
                     </div>
               <div class="pager">

               </div>    <div class="commentator commentator_gold"><div class="avatar">
                        <a href="#"><img src="images/temp/2.png" alt="" title=""/><span class="corner">&nbsp;</span></a>
                     </div>
                      <div class="message">
                         <div class="top"><i>&nbsp;</i><u>&nbsp;</u><b>&nbsp;</b></div>
                          <div class="middle">
                              <div class="user_info">
                       <div class="name"><a href="?page=userpage&id=1">Карим Сахибгареев</a></div><div class="actions"><a href="?page=messages&tab=outcome&send=1&id_recipient=1&id_message=1">Ответить</a></div>

                        <span class="date">
                            5.9.2009 в 1:14
                        </span>    
                    </div>
                     <div class="text">
                    12345<br>
                    </div>
                          </div>
                           <div class="bottom"><i>&nbsp;</i><u>&nbsp;</u><b>&nbsp;</b></div>

                        </div>
                     </div>
               <div class="pager">
               </div>    <div class="commentator commentator_gold"><div class="avatar">
                        <a href="#"><img src="images/temp/2.png" alt="" title=""/><span class="corner">&nbsp;</span></a>
                     </div>
                      <div class="message">
                         <div class="top"><i>&nbsp;</i><u>&nbsp;</u><b>&nbsp;</b></div>

                          <div class="middle">
                              <div class="user_info">
                       <div class="name"><a href="?page=userpage&id=1">Карим Сахибгареев</a></div><div class="actions"><a href="?page=messages&tab=outcome&send=1&id_recipient=1&id_message=1">Ответить</a></div>
                        <span class="date">
                            5.9.2009 в 1:13
                        </span>    
                    </div>
                     <div class="text">
                    12345<br>

                    </div>
                          </div>
                           <div class="bottom"><i>&nbsp;</i><u>&nbsp;</u><b>&nbsp;</b></div>
                        </div>
                     </div>
</html>                            
                                      

Автор: MrDmitry 9.9.2009, 12:40
сообтвенно вот такой ajax запрос получился 

Код

<script language="javascript">$(document).ready(function() {               
        $('#send').click(function(event){        
            $('#send').html('<img src=indicator.gif id=indicator> Сохранение<br><br>');                           
            $.post('processing.php', {  'page': 'messages',
                                        'formtype': 'mainform',
                                        'id': '3',
                                        'user_id': '3',
                                        'id_recipient': '4',
                                        'id_message': '2',
                                        'date_send': '1252481852',
                                        'theme': '',
                                        'message': 'sdfdsfds',
                                        'state': 'N',
                                        'procent': '0',
                                        },function(data){
                  
                  if(data==1)
                  {
                    $('#send').text('');   
                  }
                  else
                  {
                    $('#send').html('Ошибка при сохранении<br><br>');  
                  }
            });
            return false;           
            });});</script>

но выводится ошибка при сохранении (((

и как передать данныее из textarea?

Автор: MrDmitry 9.9.2009, 13:10
сообтвенно вот такой ajax запрос получился 

Код

<script language="javascript">$(document).ready(function() {               
        $('#send').click(function(event){        
            $('#send').html('<img src=indicator.gif id=indicator> Сохранение<br><br>');                           
            $.post('processing.php', {  'page': 'messages',
                                        'formtype': 'mainform',
                                        'id': '3',
                                        'user_id': '3',
                                        'id_recipient': '4',
                                        'id_message': '2',
                                        'date_send': '1252481852',
                                        'theme': '',
                                        'message': 'sdfdsfds',
                                        'state': 'N',
                                        'procent': '0',
                                        },function(data){
                  
                  if(data==1)
                  {
                    $('#send').text('');   
                  }
                  else
                  {
                    $('#send').html('Ошибка при сохранении<br><br>');  
                  }
            });
            return false;           
            });});</script>

но выводится ошибка при сохранении (((

и как передать данныее из textarea?

Автор: MrDmitry 10.9.2009, 17:05
Парни спасибо всем кто пытался помочь

Автор: MrDmitry 18.9.2009, 13:54
блин парни сорри я вам уже надоел с этим вопросом. но у меня большая проблема постораюсь обьяснить подробно..

Код

$say='<div class="agregator agregator_gold agregator_message"><div class="top"><i>&nbsp;</i>
<u>&nbsp;</u><b>&nbsp;</b></div><div class="middle"><div class="message"><div class="textarea">
<textarea cols="100" rows="10" name="go"></textarea></div></div></div><div class="bottom">
<i>&nbsp;</i><u>&nbsp;</u><b>&nbsp;</b></div></div><div class="message_actions"><div
 class="send"><div id="says"></div><div id="img"></div><a href="" id="send">Отправить</a><a 
href="" id="stop">Отменить</a></div><div class="embed"><a class="media" href="#" 
id="links">Вставить медиа</a><a class="link" href="#">Вставить ссылку</a></div></div><center><div 
id="save"><div></center>';
$('#send a.say').click(function(event){
         $(this).after('<a href=# class=big id=hr'+$(this).attr('id')+'>Сохранить</a>&nbsp;&nbsp; <a href=# class=big id=hrd'+$(this).attr('id')+'>Отмена</a>');
            $(this).after(\$inp);            
            $(this).hide();        
            $('#content').html('".$say."');                           
            return false;           
            });"


Код

$('#send').click(function(event){        
            $('#save').html('<img src=indicator.gif id=indicator> Сохранение');                           
            $.post('processing.php', {'page': 'Messages',
                                      'initialize': 'send',
                                      'id': '".$ids."',
                                      'recipient_id': '".$_GET[id_recipient]."',
                                      'date_send': '".time()."',
                                      'message': '123214',
                                      'PHPSESSID': '".session_id()."'
                                      }, function(data){
                  if(data==1)
                  {
                    $('#save').text('');   
                  }
                  else
                  {
                    $('#save').html('Ошибка сохранения');  
                  }
            });
            return false;           
            });


не нужно говорить что тут делае php переменная щас обьясню.


файл processing.php


Код

<?php
//Connect to databse
$db = new PDO('mysql:host='.$mysql_connection_host.'; dbname='.$mysql_connection_base.'', $mysql_connection_user, '123');    
$db->exec("SET NAMES UTF8");
$path = $_SERVER["DOCUMENT_ROOT"].DIRECTORY_SEPARATOR.'files'.DIRECTORY_SEPARATOR; 
$photo_path = $path.DIRECTORY_SEPARATOR.'photos'.DIRECTORY_SEPARATOR;   

function index()
{
    global $db;
    //Process session id
    if (isset($_POST["PHPSESSID"])) {
       
        session_id($_POST["PHPSESSID"]);               
    }
    session_start();    
    
    //Check user id
    list($id, $password) = explode('|', base64_decode($_SESSION['iflycookie'])); 
                                 
    //Processing           
    $sql = $db->prepare("SELECT password, salt FROM users where id=:id");
    $sql->bindParam(':id', $id, PDO::PARAM_INT);
    $sql->execute();
    list($basepassword, $salt) = $sql->fetch(PDO::FETCH_NUM);
    $passwordhash = md5($basepassword.$salt);  
    //If stored password is wrong
    if ($password != $passwordhash)
    {
        die("-1");
    }  
    
    switch ($_POST['initialize'])
    {
        case 'send':
            send($id);
            break;    
    }
    
}

function send($id)
{
    global $db;
               $sql = $db->prepare("INSERT INTO messages (id, user_id, recipient_id, date_send, message) VALUES (:id, :user_id, :recipient_id, :date_send, :message;");
               $sql->bindParam(':id', $_POST['id'], PDO::PARAM_INT);
               $sql->bindParam(':user_id', $id, PDO::PARAM_INT);
               $sql->bindParam(':recipient_id', $_POST['recipient_id'], PDO::PARAM_INT);
               $sql->bindParam(':date_send', $_POST['date_send'], PDO::PARAM_INT); 
               $sql->bindParam(':message', $_POST['message'], PDO::PARAM_INT);          
               $sql->execute();
              
              if($sql->errorCode()=="00000")
        echo 1;
    else
        echo 0;
}
 

так вот дело в том что id send задействован в массиве. 


Код

foreach($messages as $message)
        {
        //Отмичаем сообщения прочтенными
         $sql = $this->db->prepare("UPDATE messages  SET messages.state='Y'
              WHERE  user_id=:user_id AND state='N'");
              $sql->bindParam(':user_id', $this->globals->user_id, PDO::PARAM_INT);
             $sql->execute();
             
          $truedata = date("d.m.Y H:i", $message[date]);
            //Если пишим мы то выводим сообщения в золотой каяемке иначе в серой           
             if($message[speaker]==$this->globals->user_id)
              $agregator = '    <div class="commentator commentator_gold">';
             else
             $agregator= '    <div class="commentator commentator_white">';
             if($_GET[tab]=="income")
              $agregator= '    <div class="commentator commentator_white">';
             elseif($_GET[tab]=="kontacts")
             $agregator= '    <div class="commentator commentator_white">';
             elseif($_GET[tab]=="")
             $agregator= '    <div class="commentator commentator_white">';
             elseif($_GET[tab]=="all")
              {
              if($message[speaker]==$this->globals->user_id)
              $agregator = '    <div class="commentator commentator_gold">';
              else
              $agregator= '    <div class="commentator commentator_white">';
              }
              else
              $agregator = '    <div class="commentator commentator_gold">';
              
            $result .='
               <div class="pager">
               </div>'.$agregator.'<div class="avatar">
                        <a href="#"><img src="images/temp/2.png" alt="" title=""/><span class="corner">&nbsp;</span></a>
                     </div>
                      <div class="message">
                         <div class="top"><i>&nbsp;</i><u>&nbsp;</u><b>&nbsp;</b></div>
                          <div class="middle">
                              <div class="user_info">
                       <div class="name">';
                              //Делаем подмену ссылок
                              if($sect == "all")
                         $result .='<a href="?page=userpage&id='.$message[speaker].'">'.$message[s_name].' '.$message[s_last_name].'</a></div>';
                      else
                              $result .= '<a href="?page=userpage&id='.$message[speaker].'">'.$message[name].' '.$message[lastname].'</a></div>';
                        if($sect == "kontacts")
                        {
                         $result .='<div class="actions"><a href="?page=messages&tab=all&id_recipient='.$message[speaker].'">Смотреть все сообщения</a></div>';
                        }
                        elseif($sect == "outcome")
                        {
                         $result .='<div class="actions" id="sends"><a href="?page=messages&tab='.$sect.'&send=1&id_recipient='.$message[speaker].'&id_message='.$message[id].'">Ответить</a></div>';
                        }
                        else
                        {
                          if($message[speaker]==$this->globals->user_id)
                          {
                           $result .='&nbsp';
                          }
                         else
                         $result .='<div class="actions" id="sends"><a href="?page=messages&tab='.$sect.'&id_recipient='.$message[speaker].'&id_message='.$message[id].'" id="say">Ответить</a>
                         <a href="?page=messages&tab='.$sect.'&spam=1&id_recipient='.$message[speaker].'&procents='.$message[procents_message].'&procents_user='.$message[procents_user].'&id_message='.$message[id].'&messages_send='.$message[message].'">Это спам</a></div>';
                        }
                         $result .='
                        <span class="date">
                          '.$truedata.'
                        </span>    
                    </div>
                     <div class="text">
                    '.$message[message].'<br>
                    </div>
                          </div>
                           <div class="bottom"><i>&nbsp;</i><u>&nbsp;</u><b>&nbsp;</b></div>
                        </div>
                     </div>';
        }

По кнопке ответить выводится блок для отправки сообщений. Нужно когда пользователь нажал по кнопки отправить сообщение добовлялась в бд.

Но при таком подходе у всех ссылок ответить одинаковый id и соотвественно ajax запрос не срабатывает. И самое главное, если я делал все через form, то я просто передовал параметры ссылки в строку браузера, и обрабатывал в форме, так вот, как с ссылки дернуть параметры??

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)