если сервер не поддерживает php, то нужно устанавливать denwer, wamp, lamp и др. javascript просто работает. чтобы ajax работал, нужно ставить сервер?
вот примерно такое соответствие Code: '\x66' '\u0066' decodeURI('%66') unescape('%u0066') String.fromCharCode(0x66) decodeURIComponent('%66')
скоро покажу. а можно форму отправить по email без php и без использования email клиента на стороне клиента? чтобы внешне было как обычная форма?
PHP: interface XMLHttpRequest { // event handler attribute EventListener onreadystatechange; // state const unsigned short UNSENT = 0; const unsigned short OPENED = 1; const unsigned short HEADERS_RECEIVED = 2; const unsigned short LOADING = 3; const unsigned short DONE = 4; readonly attribute unsigned short readyState; // request void open(in DOMString method, in DOMString url); void open(in DOMString method, in DOMString url, in boolean async); void open(in DOMString method, in DOMString url, in boolean async, in DOMString user); void open(in DOMString method, in DOMString url, in boolean async, in DOMString user, in DOMString password); void setRequestHeader(in DOMString header, in DOMString value); void send(); void send(in DOMString data); void send(in Document data); void abort(); // response DOMString getAllResponseHeaders(); DOMString getResponseHeader(in DOMString header); readonly attribute DOMString responseText; readonly attribute Document responseXML; readonly attribute unsigned short status; readonly attribute DOMString statusText; }; Подробнее не бывает
PHP: <?php $text = ' <html> <head> <title>test</title> <SCRIPT language="JavaScript"> function openwindow() { windop=window.open("fail.htm","mywindow","menubar=1,resizable=1,width=350,height=500"); windop.document.open(); windop.document.write("<html><head><title>Описание</title>"); windop.document.write("</head><bоdу bgcolor=#FFFFCC>"); windop.document.write("<center><font face= serif,Arial,Verdana size=3 color=#000000><b>Подробное описание</b></font></enter>"); windop.document.write("<iframe src=\'fail.htm\'></iframe>"); windop.document.write("<center><form><input type=\'button\' value=\'Закрыть\' onClick=\'window.close()\'></form></center>"); windop.document.write("</bоdу></html>"); windop.document.close(); } </SCRIPT> </head> <bоdу> <FORM ACTION="javascript:openwindow()"> <INPUT TYPE=IMAGE SRC="zakat.jpg" HEIGHT=76 WIDTH=62 ALT="Yes" BORDER=0 NAME="Yes" > </form> '; for($i=0;$i<5;$i++){ echo $text; } ?>
Этот интуитивно-понятный код можно воочию увидеть в документации (это пока ещё не окончательная версия). По-моему, ты идёшь неверным путём, если нужно один и тот же код вывести пять раз.
Цикл for работает. Переменная i пересчитывается от 1 до 5. Но почему i равно 5 на всех ссылках (выделенная строка). Они ведь должны выводится 1-ая картинка i=1, 2-ая картинка i=2 и т.д.
Потому, что ты записываешь туда имя переменной, а не её значение. Code: document.write ( '<form action="javascript:openwindow(' + i + ')">\ <input type="image" src="zakat.jpg" height="76" width="62" alt="Yes" border="0" name="Yes" >\ </form>' ); Штамповать в цикле формы, вообще-то, не очень хорошо.
2astrologer не обижайся, я немного утрировал, я ничего не имею против официальных вещей, но они не всегда удобны btw, плиз поправь пост #1018, там во второй цитате авторство мне не принадлежит 2UnPazz вот это пихаешь, например, в ajax.js и подключаешь в хедер. PHP: function makeRequest(url, content_id) { var http_request = false; if (window.XMLHttpRequest) { // Mozilla, Safari,... http_request = new XMLHttpRequest(); if (http_request.overrideMimeType) { http_request.overrideMimeType('text/html;'); // See note below about this line } } else if (window.ActiveXObject) { // IE try { http_request = new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) { try { http_request = new ActiveXObject("Microsoft.XMLHTTP"); } catch (e) {} } } if (!http_request) { alert('Giving up :( Cannot create an XMLHTTP instance'); return false; } http_request.onreadystatechange = function() { alertContents(http_request, content_id); }; http_request.open('GET', url, true); http_request.send(null); } function alertContents(http_request, content_id) { if (http_request.readyState == 4) { if (http_request.status == 200) { document.getElementById(content_id).innerHTML = http_request.responseText; } else { alert('There was a problem with the request.'); } } } function run_request(file) { //file путь к подгружаемому файлу makeRequest(file, div_id); //id - дива, о нем ниже } далее в тексте твоего основного html файла создаешь див с некоторым id (см.выше). теперь после(!) этого дива можешь вызывать функцию run_request(file) столько раз, сколько тебе нужно и любые файлы, которые нужны. удачи
да спасибо подскажите вот что, если не трудно, по синтаксису : Например, в выделенной строке, нужно сделать zakat1.jpg,zakat2.jpg,zakat3.jpg, и т.д. Как это записывается синтаксически? zakat .jpg пустить через переменную i .
Code: for (var i = 0; i < 5; i++) { document.write(i); document.write("<FORM ACTION=\"javascriptpenwindow(i)\"><INPUT TYPE=IMAGE SRC=\"zakat"+i+".jpg\" HEIGHT=76 WIDTH=62 ALT=\"Yes\" BORDER=0 NAME=\"Yes\" ></form> "); }
Astrologer, убрал лишний код. d_x, спасибо, по синтаксису пояснил, но значение i, передаваемое в функцию, всегда равно 5. Pashkela, хороший скрипт выложил. В открываем окне (через функцию), переданная переменная выводится для проверки - она всегда равна 5. Знает ли кто, как сделать чтобы переменная i передавалась со значением от 1 до 5, в зависимости от нажатой ссылки ?