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

Тема в разделе "Web 2.0, AJAX, Ruby, RSS технологии", создана пользователем vadimka, 29 май 2006.

Статус темы:
Закрыта.
  1. vadimka

    vadimka Гость

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

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

    Andrew Stephanoff Гость

    Код (Text):
    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);
     
  3. vadimka

    vadimka Гость

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

    Gisma Гость

    читай документацию тогда:rolleyes:
     
  5. vadimka

    vadimka Гость

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

    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
    );
     
Загрузка...
Статус темы:
Закрыта.

Поделиться этой страницей