Модераторы: Sardar, Aliance

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> ajax 
:(
    Опции темы
MrDmitry
Дата 2.9.2009, 12:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 556
Регистрация: 10.11.2006

Репутация: нет
Всего: нет



сорри если не тот вопрос. Сообвственно вопрос в следующем

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

Код

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


через ajax можно обратится к этой функции чтоб вывелось "Пример"?
PM MAIL   Вверх
brother79
Дата 2.9.2009, 12:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 471
Регистрация: 18.8.2009

Репутация: 1
Всего: 6



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

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


--------------------
PM MAIL WWW   Вверх
MrDmitry
Дата 2.9.2009, 13:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 556
Регистрация: 10.11.2006

Репутация: нет
Всего: нет



Как это дернуть файл??
PM MAIL   Вверх
brother79
Дата 2.9.2009, 13:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 471
Регистрация: 18.8.2009

Репутация: 1
Всего: 6



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

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

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

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

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


--------------------
PM MAIL WWW   Вверх
bars80080
Дата 2.9.2009, 13:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 15
Всего: 315



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

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

всё что в твоём скрипте в файле выдаёт в браузер, то есть всё что в функциях echo, print, var_dump, или просто за пределами <?php ?>, всё попадёт в ответ аяксу. приняв данные, разбираешь всё что пришло
PM MAIL WWW   Вверх
MrDmitry
Дата 2.9.2009, 22:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 556
Регистрация: 10.11.2006

Репутация: нет
Всего: нет



Блин аякс хочется выучить но времени нет а сроки поджимают

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

вот форма
Код

<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

Это сообщение отредактировал(а) MrDmitry - 5.9.2009, 00:38
PM MAIL   Вверх
brother79
Дата 3.9.2009, 06:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 471
Регистрация: 18.8.2009

Репутация: 1
Всего: 6



Начнём с того, что:

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

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

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

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


--------------------
PM MAIL WWW   Вверх
Ипатьев
Дата 3.9.2009, 08:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2232
Регистрация: 5.7.2009

Репутация: нет
Всего: 37



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

PM MAIL   Вверх
brother79
Дата 3.9.2009, 08:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 471
Регистрация: 18.8.2009

Репутация: 1
Всего: 6



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



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


--------------------
PM MAIL WWW   Вверх
MrDmitry
Дата 3.9.2009, 12:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 556
Регистрация: 10.11.2006

Репутация: нет
Всего: нет



Цитата(brother79 @ 3.9.2009,  06:01)
Начнём с того, что:

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

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

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

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

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

PM MAIL   Вверх
Ипатьев
Дата 3.9.2009, 12:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2232
Регистрация: 5.7.2009

Репутация: нет
Всего: 37



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

В этом случае порядочнее будет передать заказ тому человеку, который может выполнить требование заказчика. 
Учитывая, что Sql вы тоже не владеете.
PM MAIL   Вверх
brother79
Дата 3.9.2009, 13:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 471
Регистрация: 18.8.2009

Репутация: 1
Всего: 6



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


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

Там есть

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

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

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


--------------------
PM MAIL WWW   Вверх
MrDmitry
Дата 5.9.2009, 00:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 556
Регистрация: 10.11.2006

Репутация: нет
Всего: нет



вообщем сделал так

Код

$('#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");
      }


Что не так? (

Это сообщение отредактировал(а) MrDmitry - 5.9.2009, 00:38
PM MAIL   Вверх
brother79
Дата 5.9.2009, 07:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 471
Регистрация: 18.8.2009

Репутация: 1
Всего: 6



И не будет. Не путай божий дар с яичницей.

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

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

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

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

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


--------------------
PM MAIL WWW   Вверх
MrDmitry
Дата 7.9.2009, 23:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 556
Регистрация: 10.11.2006

Репутация: нет
Всего: нет



это снова я. Парни ну помогите ))
делаю так

          /
Код

 //Отпровляем сообщение 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;
 
} 

?>

не фига не работает. Где косяк? (((
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию.
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0616 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.