1. Задавайте здесь вопросы о коде, которые не подходят в другие разделы, такие как:
    Дизайн > Верстка
    PHP > Как сделать на PHP
    Скрыть объявление

Помогите со скриптом передачи Post значения через Javascript

Тема в разделе "Web Coding", создана пользователем DCRM, 17 сен 2007.

Статус темы:
Закрыта.
Модераторы: latteo
  1. DCRM

    DCRM Постоялец

    Регистр.:
    28 июн 2007
    Сообщения:
    53
    Симпатии:
    40
    Ситуация такая... вроде скрипт простой) НО...
    Нужно сделать что запрос передавался в качестве POST и начался переход на страницу...
    Реализовал как бы "GET" с помощью функции:

    PHP:
    function doClick(url
    {
    location.href "index.php?x=" url.id;
    }
    Этот id являестся именем для "инклудинга", за это отвечает переменная x... но это никуда не годиться, как мне оформить это в качестве POST, ведь переменной x можно передать и через POST значение id... очень надо...

    И ещё вопрос, как одновременно передать POST и GET параметры...
     
  2. navin

    navin Создатель

    Регистр.:
    21 авг 2007
    Сообщения:
    20
    Симпатии:
    2
    Если хочешь POST, тебе не обойтись без XMLHttpRequest(); бъекта
    PHP:
    var http = new XMLHttpRequest();
    // Куда постим?
    var url "get_data.php";
    // Как собрать праметры думаю понятно?
    var params "lorem=ipsum&name=binny";
    // Указываем метод ПОСТ
    http.open("POST"urltrue);
    // Выставляем нужные хедеры
    http.setRequestHeader("Content-type""application/x-www-form-urlencoded");
    http.setRequestHeader("Content-length"params.length);
    http.setRequestHeader("Connection""close");
    //Создаем ф-цию которая будет вызывать  по окончанию запроса
    http.onreadystatechange = function() {
            
    // Запрос завершен (4) и страница отдалась (200)
        
    if(http.readyState == && http.status == 200) {
            
    alert(http.responseText);
        }
    }
    // Запускаем!
    http.send(params);
    А так же, очень советую либу Prototype - она много черной работы делает. В твоем случае подошел бы Перейти по ссылке
    А вот пару статей на русском как либу юзать:
    Перейти по ссылке
    Перейти по ссылке
     
    censored! и DCRM нравится это.
  3. HeeL

    HeeL Создатель

    Регистр.:
    15 май 2006
    Сообщения:
    39
    Симпатии:
    5
    Одновременно отправлять GET и POST возможно, к примеру так:

    <form action=?id_get=1 method=POST>
    <input type=hidden name=id_post value=1>
    </form>


    Таким образом получим переменные:

    $_POST['id_post']
    и
    $_GET['id_get']

    Чтобы отправить POST данные из Java Script нужно сформировать Header. А на кой тебе это нужно???
     
    DCRM нравится это.
  4. DCRM

    DCRM Постоялец

    Регистр.:
    28 июн 2007
    Сообщения:
    53
    Симпатии:
    40
    о... спасиба! буду пробовать..
    Это надо что бы спрятать из адресной строки всё.. ну или частично всё, например спрятать:
    xxx.ru/index.php?x=main
    НО блин... некоторые инклудинги требуют прямого обращения к index.php..
    А есть ли возможность добиться этого: xxx.ru/

    P.s как разберусь с мускулом у себя на хостинге, то дам прямой линк на действующий образец)))
     
  5. vopr

    vopr Создатель

    Регистр.:
    14 сен 2007
    Сообщения:
    10
    Симпатии:
    5
    Код:
    <form name=f1 action="script.php?id=18" method=post>
    <input type=hidden name=param value=0>
    </form>
    <script>
    function post_smth(prm){
    document.f1.param.value=prm;
    document.f1.submit();
    }
    </script>
    <a href="javascript:post_smth(15)">йа сцылко</a>
    
    ЗЫ может где-то орфографически ошибся, но надеюсь что ход мысли понятен
     
    HeeL нравится это.
  6. HeeL

    HeeL Создатель

    Регистр.:
    15 май 2006
    Сообщения:
    39
    Симпатии:
    5
    Да, крутая идея, я уловил)) псиб
     
  7. Jameson

    Jameson Читатель

    Заблокирован
    Регистр.:
    25 июн 2007
    Сообщения:
    406
    Симпатии:
    92
    еще круче с помощью Перейти по ссылке:

    Код:
       $.post( "index.php", 
       { 
          x: "main",
          id: review_id
        }, 
       function( response )
       {
         $("#article_text").html( response );
       } );
    
    но сама задача поствлена немного неверно
    Это надо что бы спрятать из адресной строки всё.. ну или частично всё, например спрятать

    во-первых, для поисковика такая страничка просто не будет работать, он так и будет тупо открывать xxx.ru/

    во-вторых, кому надо, все равно легко увидят куда и какой уходит POSt-запрос. Так что задумайтесь, стоит ли овчинка пляски с бубном.
     
    DCRM нравится это.
  8. DCRM

    DCRM Постоялец

    Регистр.:
    28 июн 2007
    Сообщения:
    53
    Симпатии:
    40
    опа.. это уже интереснее!
    1. Мне и надо что бы поисковик обламывался да и те кому это надо могли сделать то что им нужно! :) На то и расчитываю)
    На счёт Java
    Код:
    function doClick(xx) { 
    linker = index.php;
    var http = new XMLHttpRequest(); 
    var url = linker; 
    var params = "x=" + xx.id;
    http.open("POST", url, true); 
    http.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); 
    http.setRequestHeader("Content-length", params.length); 
    http.setRequestHeader("Connection", "close"); 
    http.onreadystatechange = function() { 
        if(http.readyState == 4 && http.status == 200) { 
         document.write(http.responseText);
        } 
    } 
    http.send(params);}
    сие 1й раз он обновляет... но... коряво в смысле кодировки(Русский текст), что делает невозможным дальнейшее "общение" с сайтом:
    в Опере ромбики за место Русского текста
    в ИЕ 7 Он вообще хз откуда куски кода грузит и русский текст вообще не выводит! :nezn:
    И! после того как обновил следующий клик тупо дописывает после.. а как заново???
    пипец... реально надо полностью формировать запрос... как же там кодировку указать... блин)
    Читаю спецификацию...:bc:
    Мдя... не густо...
    Нашёл некую ф-ю: Перейти по ссылке... думаю...
    Помогите с ней разобраться пожалуйста... может на ней запрос сформировать??

    Нашёл ещё либу:
    Перейти по ссылке но она на php... а надо на яве(

    Вот ещё Перейти по ссылке но уже мозги жгут! хелп..
     
  9. Jameson

    Jameson Читатель

    Заблокирован
    Регистр.:
    25 июн 2007
    Сообщения:
    406
    Симпатии:
    92
    я чего-то уже перестал понимать задачу:
    при чем же тогда дальнейшее "общение" с сайтом, куски текста и т.д.?

    чтобы дописывало не после, вместо document.write(http.responseText);
    пишем что-то другое. типа
    document.getElementById('result_div').innerHTML = http.responseText;

    вообще надо почитать литературу на тему "веб-приложения с применением технологии AJAX".
     
    DCRM нравится это.
Статус темы:
Закрыта.