ОБСУЖДЕНИЕ

как выполнить условие без перезагрузки страници?

5 ответов 7,1 тыс.
AI-выжимка обсуждения скоро

Краткие тезисы обсуждения со ссылками на ключевые ответы появятся здесь.

Статус
Закрыто для дальнейших ответов.
Автор темы
всем привет! вобшем все что мне надо сделать Это ТУПО запустить ехе файл при нажатии на кнопку но БЕЗ перезагрузки страници! на PHP я сделал это так

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

при нажатии на кнопку условие выполняется но при этом перезагружается страница! на форумах мне посаветовали обратиться к технологии AJAX
 
Код:
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);
 
а если можно то подробнее потомучто я начинающий и немножко чайник в этих делах! куда мне тот код пихать? и как его юзать?
 
читай документацию тогда:rolleyes:
 
а так чтобы конкретно и все понялно было? ну просто очень надо а про ajax я первый раз слышу!
 
чё то я не пойму, что тебе нужно... во первых ты собираешься на клиенте запускать приложение или на сервере? если на клиенте, то тогда, клиент должен стянуть приложение с указанного урла, положить его в неджры временных деректориев винды (если клиент под ней работает) а после уже будет произведён запуск. что каксается перезагрузки окна, то его на клиенте и не будет происходить, ссылка на исполняемый файл не изменит контекст окна. для всяких других обработок по <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
);
 
Статус
Закрыто для дальнейших ответов.

Ещё по теме