Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 08.10.2010, 09:28
Новичок на форуме
Отправить личное сообщение для Ragnar_NSK Посмотреть профиль Найти все сообщения от Ragnar_NSK
 
Регистрация: 08.10.2010
Сообщений: 1

трабла с выводом в Chromium'e и отправкой post
есть такая страничка -
index.php
//........
if(isset($_POST["subject"]))
  $subj = $_POST["subject"];
if(isset($_POST["contacts"]))
  $cont = $_POST["contacts"];
if(isset($_POST["problem"]))
  $problem = $_POST["problem"];
$rep_data=array('subject'=>urlencode($subj),'contacts'=>urlencode($cont),'problem'=>urlencode($problem));
echo var_dump($rep_data);
echo '<script>var report_data = '.json_encode($rep_data).'</script>';
//............


в фаерфоксе и опере код страницы получается следующим

array(3) {
  ["subject"]=>
  string(5) "ozzzz"
  ["contacts"]=>
  string(5) "ozzzz"
  ["problem"]=>
  string(17) "asfgbhfshsdngbsdf"
}
<script>var report_data = {"subject":"ozzzz","contacts":"ozzzz","problem":"asfgbhfshsdngbsdf"}</script><script>


а в хромиуме:
array(3) {
  ["subject"]=>
  string(0) ""
  ["contacts"]=>
  string(0) ""
  ["problem"]=>
  string(0) ""
}
<script>var report_data = {"subject":"","contacts":"","problem":""}</script><script>


при этом вывод странички одинаковый 0_о

Далее на страничке нужно сразу перенаправить полученный пост. Делаю так:

function createRequestObject() {
    var request = null;
    try {
        request=new ActiveXObject('Msxml2.XMLHTTP');
    } catch (e){}
    if(!request) try {
        request=new ActiveXObject('Microsoft.XMLHTTP');
    } catch (e){}
    if(!request) try {
        request=new XMLHttpRequest();
    } catch (e){}
    return request;
}

/*
Кодирование данных (простого ассоциативного массива вида
{ name : value, ...} в URL-escaped строку (кодировка UTF-8)
*/
function urlEncodeData(data) {
    var query = [];
    if (data instanceof Object) {
        for (var k in data) {
            query.push(encodeURIComponent(k) + "=" +
            		encodeURIComponent(data[k]));
        }
        return query.join('&');
    } else {
        return encodeURIComponent(data);
    }
}

/*
Выполнение POST-запроса 
url  - адрес запроса
data - параметры в виде простого ассоциативного массива
	{ name : value, ...} 
callback - (не обяз.) callback-функция,
	которая будет вызвана после выполнения запроса
	и получения ответа от сервера
*/
function my-callback(){alert("ответ получен");}
function serverRequest(url, data, callback) {
    var request = createRequestObject();
    if(!request) return false;
    request.onreadystatechange  = function() { 
            if(request.readyState == 4 && callback) callback(request);
        };
    request.open('POST', url, true);
    if (request.setRequestHeader)
        request.setRequestHeader("Content-Type",
        	"application/x-www-form-urlencoded");
    request.send(urlEncodeData(data));
    return true;
}
alert(report_data); //просто глянуть создался ли массив
serverRequest("poster.php",report_data,"my-callback");

Причем алерт ни в одном браузере не выскакивает(javascript включен), даже просто со строкой, ошибок тоже не показывает.

И посему два вопроса:
- Что за глюк в хромиуме с выводом вардамп?
- Где ошибка в скрипте?

Подскажите пожалуйста! Уже кучу манов перерыл с этим post.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Открытие нового окна c отправкой туда POST запроса razrabotchik jQuery 2 21.07.2010 20:17