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


Автор: DRUG_ADDICT 31.10.2008, 20:30
Добрый вечер всем!

Сори за наитупейшую тему... smile ну вот не доходит до меня smile 

Надо на AJAX написать скриптик такой... который будет отправлять PHP скрипту POST запрос? просто отправить например число "1" а PHP скрипт уже:

$aaa = $_POST[''];

будет работать с этим... просто отправить число "1" smile ну вроде кажется нет не чего проще... а вот я не магу!!! чиатю статьи разные в инете и не понимаю... там что то всего много... а тут вроде всего не чего... пжлст помогите!

Автор: destrd 31.10.2008, 21:03
Так же и отправляйте, как в браузере набираете
xmlHttp.open("POST", "http://myhost.lo/?param=1", true);

Почитайте это
http://www.ibm.com/developerworks/ru/library/wa-ajaxintro1/ 

Автор: bars80080 31.10.2008, 21:22
Код

function changespecial(x) {
    var dpar = '<? echo time(); ?>';
    if(window.XMLHttpRequest) {
        try { req = new XMLHttpRequest(); } 
        catch (e){}} 
    else if(window.ActiveXObject) {
        try { req = new ActiveXObject('Msxml2.XMLHTTP'); } 
        catch (e){ req = new ActiveXObject('Microsoft.XMLHTTP'); }}
    req.onreadystatechange = function() { 
        if(req.readyState == 4) ajax_o(req.responseText); }     
    req.open("GET", 'http://server.ru/ajax/special.php?par=' + encodeURIComponent(x) + '&dpar=' + dpar, true);
    req.send(''); 
}
function ajax_o(x) {
    var zelj = document.getElementById('ziel');
    zelj.innerHTML = decodeURIComponent(x);
}
вот, универсал на котором у меня нормально варятся небольшие аякс-вствки
changespecial(x) - отослать серверу x значение. ajax_o() - это просто обработчик, пишешь, что тебе надо
var dpar = '<? echo time(); ?>'; - нужная вещь для приведения подгружаемых данных в соответствии с обновлением страницы

Автор: DRUG_ADDICT 31.10.2008, 21:34
 smile  smile  smile да не работает!!!

Код

<script language="javascript">

function changespecial(x) {
    var dpar = '<?
                $dpar = $_GET['dpar']; 
                if ($dpar == 1) {
                echo "<br /><br />Принял";
                } else {
                echo "<br /><br />Не принял";
                }  
                ?>';
    if(window.XMLHttpRequest) {
        try { req = new XMLHttpRequest(); } 
        catch (e){}} 
    else if(window.ActiveXObject) {
        try { req = new ActiveXObject('Msxml2.XMLHTTP'); } 
        catch (e){ req = new ActiveXObject('Microsoft.XMLHTTP'); }}
    req.onreadystatechange = function() { 
        if(req.readyState == 4) ajax_o(req.responseText); }     
    req.open("GET", 'http://192.168.33.68/phpinfo/frame/Untitled-1.php?fuck=' + encodeURIComponent(x) + '&dpar=' + dpar, true);
    req.send(''); 
}
function ajax_o(x) {
    var zelj = document.getElementById('ziel');
    zelj.innerHTML = decodeURIComponent(x);
}

</script>

вот написал, ну как это может работать? не понимаю... smile ну так вроде все просто, отправить POST запросом цифру 1 на другой УДАЛЕННЫЙ  скрипт .php в котром будет (например):

Код

                $dpar = $_GET['dpar']; 
                if ($dpar == 1) {
                echo "<br /><br />Принял";
                } else {
                echo "<br /><br />Не принял";
                } 

не че AJAX`у обробатывать не надо не че выводить не надо просто отправить цифру 1 

Автор: bars80080 31.10.2008, 21:54
чего это ты такое написал? вообще не трогай эти функции, поменяй только адрес отправки:

Код

<div id="ziel"></div>
<script>
function ajax_s(x) {
    var dpar = '<? echo time(); ?>';
    if(window.XMLHttpRequest) {
        try { req = new XMLHttpRequest(); } 
        catch (e){}} 
    else if(window.ActiveXObject) {
        try { req = new ActiveXObject('Msxml2.XMLHTTP'); } 
        catch (e){ req = new ActiveXObject('Microsoft.XMLHTTP'); }}
    req.onreadystatechange = function() { 
        if(req.readyState == 4) ajax_o(req.responseText); }     
    req.open("GET", 'http://server.ru/ajax/special.php?par=' + encodeURIComponent(x) + '&dpar=' + dpar, true);
    req.send(''); 
}
function ajax_o(x) {
    var zelj = document.getElementById('ziel');
    zelj.innerHTML = decodeURIComponent(x);
}


ajax_s(1);

</script>


в скрипте special.php на сервере пишешь:

Код

<?php

echo rawurlencode('принял: '.$_GET['par']);

?>


Добавлено через 1 минуту и 39 секунд
батенька, вы здесь ещё не были? http://phpfaq.ru/na_tanke

Автор: akaKail 12.11.2008, 10:18
Уважаемый! чего мучаетесь?  smile 

Если Вы уверены, что запрос к РНР скрипту идёт, 
передать ему данные можно 2 способами.

1. В GET запросе. У вас правильный код. 
Код

 req.open("GET", 'http://192.168.33.68/phpinfo/frame/Untitled-1.php?fuck=' + encodeURIComponent(x) + '&dpar=' + dpar, true);

Просто с 5-ой версии РНР параметры надо ручками вытащить с суперглобала $_GET
Код

$fuck = $_GET['fuck'];

(Эти настройки выставлены по умолчанию. Проверьте через phpinfo параметр register_globals - наверняка в off выставлен)

2. В переданной строке.
Можно так  данные выцарапать (строкой в рнр-скрипте)
Код

 # Получим переменные
    parse_str($_SERVER['QUERY_STRING']); 

Это экспортирует переменные в область окружения автоматически.

Не забудьте проверить их на корректность полученных данных

Автор: kylller 21.1.2009, 20:26
Так ведь скрипт то все равно этот ваш не работает, я как не пробовал, все никак

Добавлено через 1 минуту и 36 секунд
Кстати когда отправляешь сообщение на этом форуме, вот это все реализовано и правильно работает.
Надо бы чтоб автор форума с нами поделился.

Автор: eliya 26.2.2010, 17:52
Цитата(bars80080 @  31.10.2008,  19:22 Найти цитируемый пост)
вот, универсал на котором у меня нормально варятся небольшие аякс-вствки

bars80080, отличный пример. Думал, придется потратить пару-тройку дней на втыкание в аякс и выполнение моей задачи, а с этой функцией управился за 40 минут. Если вдруг доведется свидеться - с меня пиво smile 

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