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

  • Автор темы vadimka
  • Дата начала
Статус
Закрыто для дальнейших ответов.
V

vadimka

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

Код:
if(isset($_POST['rec']))
{
exec('1.exe');
}
при нажатии на кнопку условие выполняется но при этом перезагружается страница! на форумах мне посаветовали обратиться к технологии AJAX
 
A

Andrew Stephanoff

#2
Код:
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);
 
V

vadimka

#3
а если можно то подробнее потомучто я начинающий и немножко чайник в этих делах! куда мне тот код пихать? и как его юзать?
 
V

vadimka

#5
а так чтобы конкретно и все понялно было? ну просто очень надо а про ajax я первый раз слышу!
 
G

glukh

#6
чё то я не пойму, что тебе нужно... во первых ты собираешься на клиенте запускать приложение или на сервере? если на клиенте, то тогда, клиент должен стянуть приложение с указанного урла, положить его в неджры временных деректориев винды (если клиент под ней работает) а после уже будет произведён запуск. что каксается перезагрузки окна, то его на клиенте и не будет происходить, ссылка на исполняемый файл не изменит контекст окна. для всяких других обработок по <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
);
 
Статус
Закрыто для дальнейших ответов.