goldenmouse
24.03.2010 - 22:38
Здравствуйте, уважаемые знатоки!
Есть проблемка с AJAX'ом, помогите разобраться.
Файл 111.js
PHP |
function process(targetid, containerid){ var page_request = false if (window.XMLHttpRequest) // if Mozilla, Safari etc page_request = new XMLHttpRequest() else if (window.ActiveXObject){ // if IE try { page_request = new ActiveXObject("Msxml2.XMLHTTP") } catch (e){ try{ page_request = new ActiveXObject("Microsoft.XMLHTTP") } catch (e){} } } else return false page_request.onreadystatechange=function(){ loadpage(page_request, containerid) } var obj = document.getElementById(targetid); if (targetid.indexOf('select') + 1) { if (obj.selectedIndex >0) { name = encodeURIComponent(obj.options[obj.selectedIndex].value); } } else name = encodeURIComponent(obj.value); url = "index2.php?&func=Test1&name=" + name; page_request.open('GET', url, true) page_request.send(null) }
function loadpage(page_request, containerid){ if (page_request.readyState == 4 && page_request.status==200) document.getElementById(containerid).innerHTML=page_request.responseText } |
В файле index2.php запускается функция Test1
PHP |
function Test1() { $emitent = $_REQUEST['name']; echo $emitent; } |
И всё это дело запускается кодом
HTML |
<select size=1 name='emitent' id='emitentselect'> <option value='1'>1 <option value='2'>2 </select> <input type='button' value='Выбрать' onclick='process("emitentselect","divMessage"); '/> <div id='divMessage' />
|
По идее, после клика по кнопке должен в divMessage появиться выбранный пункт списка. Но не выводится.
Пробывал тестовую ссылку делать
PHP |
url = "index2.php?&func=Test1&name=" + name; document.getElementById(containerid).innerHTML = "<a href="+url+">Ссылка</a>"; |
Она появляется и пропадает, но если успеть кликнуть, то открывается чистая страница с нужным текстом.
А в нужное место на странице не впечатывается.
Объясните, почему.
Спустя 24 минуты, 13 секунд (24.03.2010 - 22:02) Adil написал(а):
Спустя 37 минут, 21 секунда (24.03.2010 - 22:40) goldenmouse написал(а):
Из значимого кода могу привести это:
PHP |
switch( $func ) { case 'Test1': Test1(); break; default: break; }
function Test1() { $emitent = $_REQUEST['name']; echo $emitent; } |
Также есть другие функции, но они отношения не имеют.
Спустя 42 минуты, 56 секунд (24.03.2010 - 23:23) Adil написал(а):
вместо
switch( $func ) {
попробуй
switch( $_GET['func'] ) {
тк возможно register globals отеключен
Спустя 8 часов, 19 минут, 37 секунд (25.03.2010 - 07:42) goldenmouse написал(а):
Нет, в плане выбора функции всё работает.
При переходе по ссылке, например index2.php?&func=Test1&name=1 открывается страница с цифрой 1, т.е. и сама функция Test1 работает как надо, получает и передаёт данные.
А вот почему это данные не появляются здесь document.getElementById(containerid).innerHTML=page_request.responseText - не понимаю.