Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Общие вопросы > как организовать тоже самое, но с помощью Ajax


Автор: MoLeX 28.9.2007, 09:15
Код

<html> 
<head> 
<title>title</title> 
<script language="JavaScript">
function namosw_goto_byselect(sel, targetstr)
{
    var index = sel.selectedIndex;
    if (sel.options[index].value != '') 
    {
        if (targetstr == 'blank') 
        {
            window.open(sel.options[index].value, 'win1');
        } 
        else 
        {
            var frameobj;
            if (targetstr == '') targetstr = 'self';
            if ((frameobj = eval(targetstr)) != null)
            frameobj.location = sel.options[index].value;
        }
    }
}
</script>
</head>

<body>
<select name="selection_0" OnChange="namosw_goto_byselect(this, 'self')">
    <option></option>
    <option value="?page=1">1</option>
    <option value="?page=2">2</option>
    <option value="?page=3">3</option>    
</select>    
<br>
<?php
echo $_GET['page'];
?>
</body>
</html>



Как тоже самое сделать но токлько с помощью Ajax.  smile 

З.Ы. большая просьба на доки ссылке не давать, начитался их в волю но практически не чего от туда не уяснил  smile 

Автор: Grig 28.9.2007, 09:58
Три файла:
Первый 1.php содержит форму отправки, функцию, и див для приёма данных.
Код

<html> 
<head> 
<title>title</title> 
  <script type='text/javascript' src='ajax.js'></script>
<script language="JavaScript">
function namosw_goto_byselect(sel, targetstr)
{
var index = sel.selectedIndex;
sendRequest('test.php?page='+index, 'resultId',  getRequest);
}

</script>
</head>
<body>
<select name="selection_0" OnChange="namosw_goto_byselect(this, 'self')">
    <option></option>
    <option value="1">1</option>
    <option value="2">2</option>
    <option value="3">3</option>    
</select>    
<br>
<div id="resultId"></div>
</body>
</html>



Второй ajax.js Создает HTTPRequest, отправляет и принимает данные:
Код

function createHttpRequest() {
var httpRequest;
var browser = navigator.appName;

if (browser == "Microsoft Internet Explorer") {
httpRequest = new ActiveXObject("Microsoft.XMLHTTP");
} else {
httpRequest = new XMLHttpRequest();
}

return httpRequest;
}



function sendRequest(file, _resultId, getRequestProc) {
resultId = _resultId;
document.getElementById(resultId).innerHTML = 'Подождите, идет загрузка...';
httpRequest.open('get', file);
httpRequest.onreadystatechange = getRequestProc;
httpRequest.send(null);
}


function getRequest() {
if (httpRequest.readyState == 4) {
document.getElementById(resultId).innerHTML = httpRequest.responseText;
}
}


var httpRequest = createHttpRequest();
var resultId = '';



function s(page){
sendRequest('test.php?page='+page, 'resultId',  getRequest);

}



Третий test.php непосредственно отдает данные, какие попросят:
Код

<?php
echo $page;
?>

=)


Автор: MoLeX 28.9.2007, 10:51
Grig, большое тебе спасибо  smile 

Автор: MoLeX 28.9.2007, 11:30
и еще  smile, появились проблемы с кодировкой, основной текст отображается нормальная а та часть которая подгружается с помощью аяксом в виде вопросов, как от этого можно избавиться?

Автор: Grig 28.9.2007, 11:41
Код

header("Content-type: text/plain; charset=windows-1251");

Автор: Самозванка 28.9.2007, 12:40
MoLeX, я с помощью iconv от этого избавляюсь...

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