трабла с выводом в 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. |
Часовой пояс GMT +3, время: 13:33. |