Autor Zpráva
JoK1955
Profil *
Zdravím všechny.
Mám formulář (kód viz dále). Změnou selectu se spustí AJAX (viz dále), který vytáhne data z tabulky. Tato data bych chtěl zobrazit v prvku formuláře 'zobrazeni', ale nevím jak to AJAXu zadat. Pokud zadám div 'testweb', zobrazí se v něm výsledek v poho....
Poradíte někdo, pls? Díky. JoK

Formulář:
<FORM NAME = "main" ID = "main" METHOD="POST" ACTION="">

 <select id="wreklama" name="wreklama" onchange="webr()"><option value = "">Vyber<option value="46" >20 let NN<option value="1" >Čarodejnický vlak 2008 ---- etc

 <label for="zobrazeni">Zobrazení</label><input type="text" id="zobrazeni" name="zobrazeni">

 <div id="testweb"></div>

Scripty
function webr()  {
var formular = document.main;        // prirad formular do promenne, pro zjednoduseni

         ajax('wr', 'testweb');
        ajax('wr', 'document.main["zobrazeni"]');

     }

function ajax(co, kam)
{

 var co;
var formular = document.main;        // prirad formular do promenne, pro zjednoduseni
var httpRequest;

 if (co == 'ko') stranka="ajxlist.php?src=k&id="+formular["kontakt"].value;
if (co == 'wr') stranka="ajxlist.php?src=w&id="+formular["wreklama"].value;
    
     if(typeof window.ActiveXObject != 'undefined')
    {
        httpRequest = new ActiveXObject("Microsoft.XMLHTTP");
    }
    else
    {  
        httpRequest = new XMLHttpRequest();
    }
    httpRequest.open("GET", stranka, true);
    httpRequest.onreadystatechange= function () 
    {
        processRequest(httpRequest, kam) 
    };
    httpRequest.send(null);
}


 function processRequest(httpRequest, kam) 
{
    if (httpRequest.readyState == 4)
    {
        if(httpRequest.status == 200)
        {
            if (typeof kam == 'string') 
            {
                document.getElementById(kam).innerHTML = httpRequest.responseText;
            }
            if (typeof kam == 'function') 
            {
                kam(httpRequest.responseText);
            }
        }
        else
        {
            alert("Chyba pri nacitani stanky " + httpRequest.status +" : "+ httpRequest.statusText);
        }
    }
    else
    {
        if (typeof kam == 'string' && kam != '') 
        {
            document.getElementById(kam).innerHTML = '?ekejte...';
        }
    }
       
 } 
Ugo
Profil
některé prvky jsou read-only, doporučuji někde najít jelikož z hlavy nevím, vím že třeba select, tr, td, table jsou. V podstatě jediný opravdu spolehlivý je div. Ovšem tobě tady nejde ani tak o to, jelikož input innerHTML nemá, input má value takže řáděk 36 zmeň na:
document.getElementById(kam).value = httpRequest.responseText;
JoK1955
Profil *
Ugo:
jj to je ono.... jen používám stejnou fci i na zobrazeni v jiných div a tak jsem to trochu upravil (viz dále).... teď mi došlo, že bych mohl pole formuláře input nahradit div... stejně do něj nebudu vpisovat... ale zase jsem chytřejší :-)

Díky moc. JoK

            if (typeof kam == 'string') 
            {
                    if(document.getElementById(kam).id=='zobrazeni')
                    {    
                        document.getElementById(kam).value = httpRequest.responseText; 
               }
               else
               {
                    document.getElementById(kam).innerHTML = httpRequest.responseText;
               }     
            }

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0