Mam bardzo dizwny problem
Mam formularz, którego pola tekstowe przekazywane są za pomocą javascript-a do obróbki. Forlmuarz mam sformatowany za pomocą css-a. i niestety jeśli wywalę div-a, w którym siedzi pole tekstowe i diva w którym jest akacja onClick wszystko działa bez zarzutu ... jeśli wracam spowrotem na div-y akcja też jest wyłowywana ale w url-u nie jest przekazywane w URL-u (widać to w firebugu -> przy wywalonych divach robiony jest url ...?<nazwa_pola>=<wartość_pola> - czyli po prostu zwykły GET, w przypadku jeśli dostawiam te div-y niestety zaden parametr w URL-u się nie pokazuje. Możecie mi pomóc rozwiązać ten problem ... BARDZO nie chciałbym zmieniać css-a ani formatowania formularza ... może jest to problem z funkcją javascript ... ale niestety nie mogę dojść ...
poniżej plik.html
<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <link rel="stylesheet" type="text/css" href="/test/css/main.css" /> <script type="text/javascript"> // <![CDATA[ var myMenu; window.onload = function() { myMenu = new SDMenu("my_menu"); myMenu.init(); }; // ]]> </script> <script type="text/javascript"> function gotopage(form, func, parms) { var command='document.'+form+'.run.value=''+func+'';'; var par = new Array; if (parms.length) par = parms.split(',',10); for (var i=0;i<par.length;i++) { command+='document.'+form+'.par'+(i+1)+'.value=''+par[i]+'\';'; } command+='document.'+form+'.submit()'; eval(command); } </script> </head> <body> przeszłoArray ( ) <div id="CDSearcher"> <form action="javascript:get(document.getElementById('myform'));" name="myform" id="myform"> <div class="form-row"><!-- PIERWSZY DIV KTÓRY MUSZĘ USUWAĆ ŻEBY DZIAŁAŁO--> <input class="long" type="text" name="search_phrase" val ue="search_phrase" /> </div> <div id="FormRows"><!-- DRUGI DIV KTÓRY MUSZĘ USUWAĆ ŻEBY DZIAŁAŁO--> <a href="#" class="submit" onClick="get(this.parentNode);") </a> </nobr> </div> </form> </div> </html>
oraz funkcje które odpowiadają za odbieranie danych z forma
var http_request = false; function makeRequest(url, parameters) { http_request = false; if (window.XMLHttpRequest) { // Mozilla, Safari,... http_request = new XMLHttpRequest(); if (http_request.overrideMimeType) { // set type accordingly to anticipated content type //http_request.overrideMimeType('text/xml'); http_request.overrideMimeType('text/html'); } } 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('Cannot create XMLHTTP instance'); return false; } http_request.onreadystatechange = alertContents; http_request.open('GET', url + parameters, true); http_request.send(null); } function alertContents() { if (http_request.readyState == 4) { if (http_request.status == 200) { //alert(http_request.responseText); result = http_request.responseText; document.getElementById('div1').innerHTML = result; } else { alert('There was a problem with the request.'); } } } function get(obj) { var getstr = "?"; for (i=0; i<obj.childNodes.length; i++) { if (obj.childNodes[i].tagName == "INPUT") { if (obj.childNodes[i].type == "text") { getstr += obj.childNodes[i].name + "=" + obj.childNodes[i].value + "&"; } if (obj.childNodes[i].type == "checkbox") { if (obj.childNodes[i].checked) { getstr += obj.childNodes[i].name + "=" + obj.childNodes[i].val ue + "&"; } else { getstr += obj.childNodes[i].name + "=&"; } } if (obj.childNodes[i].type == "radio") { if (obj.childNodes[i].checked) { getstr += obj.childNodes[i].name + "=" + obj.childNodes[i].val ue + "&"; } } } if (obj.childNodes[i].tagName == "SELECT") { var sel = obj.childNodes[i]; getstr += sel.name + "=" + sel.options[sel.selectedIndex].value + "& "; } } makeRequest('/test/forms/programs/control/programs.php', getstr); }
tak jak mówiłem wcześniej za każdym razem wykonywane jest zapytanie prze makeRequest ... tyle że przy wpisanych div-ach nie przekazywane są argumenty w url-u a bez nich są ...
dzięki za pomoc
czy ktoś mógłby mi z tym pomóc ... jest to dla mnie dość pilne a nie mam pojęcia o co chodzi
.