Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: как выполнить условие без перезагрузки страници?
Форум программистов > Интернет и сети > Web 2.0, AJAX, Ruby, RSS технологии
vadimka
всем привет! вобшем все что мне надо сделать Это ТУПО запустить ехе файл при нажатии на кнопку но БЕЗ перезагрузки страници! на PHP я сделал это так

if(isset($_POST['rec']))
{
exec('1.exe');
}


при нажатии на кнопку условие выполняется но при этом перезагружается страница! на форумах мне посаветовали обратиться к технологии AJAX
Andrew Stephanoff
javasctipt
------------
    try {var httpRequest = new window.XMLHttpRequest;} catch(e) {
        try {var httpRequest = new window.ActiveXObject("Msxml2.XMLHTTP");} catch(e) {
            try {var httpRequest = new window.ActiveXObject("Microsoft.XMLHTTP");}
                catch(e) {return false;}
        }
    }

                request = "rec=true";

    httpRequest.open("post", "path_to_server_file.php", true);
    
    httpRequest.setRequestHeader("Cache-control", "no-cache");
    httpRequest.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
    httpRequest.setRequestHeader("Content-length", request.length);

    httpRequest.send(request);
vadimka
а если можно то подробнее потомучто я начинающий и немножко чайник в этих делах! куда мне тот код пихать? и как его юзать?
Gisma
читай документацию тогдаsmile.gif
vadimka
а так чтобы конкретно и все понялно было? ну просто очень надо а про ajax я первый раз слышу!
glukh
чё то я не пойму, что тебе нужно... во первых ты собираешься на клиенте запускать приложение или на сервере? если на клиенте, то тогда, клиент должен стянуть приложение с указанного урла, положить его в неджры временных деректориев винды (если клиент под ней работает) а после уже будет произведён запуск. что каксается перезагрузки окна, то его на клиенте и не будет происходить, ссылка на исполняемый файл не изменит контекст окна. для всяких других обработок по <a href=""... для того чтобы не происходил переход по указаному урлу нужно ставить обработчика с возвратом false - <a href="url" onClick="return false">. если же тебе нужно запустить приложение на сервере, без перезагрузке окна в клиенте, то по сути клиент долже просто послать запрос серверу а что уж делать по запросу пусть решает сам сервер. и тут тебе говорят правильно, запрос не перезагружая основного окноа может быть послан через AJAX - это ActiveX'шный компонент, который сделан как раз для этого, создавать запросы и получать ответы, называется он как правило XMLHttpRequest, но всё же лучьше использовать тот механим который тебе прислал Andrew Stephanoff. можно и по другому сделать запрос на сервер - через DHTML. тоесть создаешь невидимый IFRAME, пишешь в него всякие INPUT'ы и TEXTAREA'ы заполняешь их значениями и POST'ешь куда нужно. можно и GET'ать если тебе этого достаточно будет. примерно так:

POST
document.body.insertAdjacentHTML("beforeEnd", ' <iframe id="msg_out" style="display:none"></iframe> ');
msg_out.document.write('<html><head><meta http-equiv="Content-Type" content="text/html; charset=windows-1251"></head><body><form id="fntxt" action="addmsg.asp" method="post"><textarea name="newtxt" id="ntxt"></textarea><input name="nick" type="text"><input name="rcpt" type="text"><input name="nmsg" type="text"><input name="subj" type="text"></form></body></html>');
msg_out.document.charset = "windows-1251";
msg_out.document.getElementById("ntxt").innerText = txt.innerText;
msg_out.document.getElementById("nick").value = nnick.value;
msg_out.document.getElementById("rcpt").value = nrcpt.value;
msg_out.document.getElementById("nmsg").value = nnmsg.value;
msg_out.document.getElementById("subj").value = nsubj.value;
msg_out.document.getElementById("fntxt").submit();

или так
GET
document.getElementById("msg_in").src=(
"getmsgs.asp?lnum="+ltxt.value+
"&lfs="+gfltrsubj.value+
"&lfn="+gfltrnick.value+
"&lfq="+gfltrqick.value+

"&lft1="+gfltrt1.value+
"&lft2="+gfltrt2.value+
"&lft3="+gfltrt3.value
);
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2008 IPS, Inc.