[ Take @ 28.10.2007. 03:55 ] @
Uradio sam ajax kontakt formu koja normalno funkcionise u IE ali u Firefox-u ne radi.
Evo *.js koda pa ako neko zna sta treba promeniti neka napise.
Hvala.


Code:
<script language="javascript">

function createRequestObject() {
    var ro;
    var browser = navigator.appName;
    if(browser == "Microsoft Internet Explorer"){
        ro = new ActiveXObject("Microsoft.XMLHTTP");
    }else{
        ro = new XMLHttpRequest();
    }
    return ro;
}

var http = createRequestObject();

function sendemail() {
    var ime = document.contactform.ime.value;
    var email = document.contactform..value;
    var tel = document.contactform.tel.value;
    var mob = document.contactform.net.value;
    document.contactform.send.disabled=true; 
    document.contactform.send.value='Sending....';

    http.open('get', 'konta.php?ime='+ime+'&email='+email+'&tel='+tel+'&mob='+mob+'&action=send');
    http.onreadystatechange = handleResponse;
    http.send(null);
}

function handleResponse() {
    if(http.readyState == 4){
        var response = http.responseText;
        var update = new Array();

        if(response.indexOf('|' != -1)) {
            update = response.split('|');
            document.getElementById(update[0]).innerHTML = update[1];
         
        }
    }
}
</script>
[ Br@nkoR @ 29.10.2007. 10:10 ] @
Postavi i html kôd koji ide uz ovaj js kôd, a takođe i primer podataka koje šalje server nakom izvršenog ajax zahteva, ili postavi link gde ovo koristiš, mada:
Citat:
Take:
Code:
var email = document.contactform..value;
[ Take @ 29.10.2007. 23:00 ] @
Html kod

Code:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Kontakt</title>

<script language="javascript">

function createRequestObject() {
    var ro;
    var browser = navigator.appName;
    if(browser == "Microsoft Internet Explorer"){
        ro = new ActiveXObject("Microsoft.XMLHTTP");
    }else{
        ro = new XMLHttpRequest();
    }
    return ro;
}

var http = createRequestObject();

function sendemail() {
    var ime = document.contactform.ime.value;
    var email = document.contactform..value;
    var tel = document.contactform.tel.value;
    var mob = document.contactform.net.value;
    document.contactform.send.disabled=true; 
    document.contactform.send.value='Sending....';

    http.open('get', 'konta.php?ime='+ime+'&email='+email+'&tel='+tel+'&mob='+mob+'&action=send');
    http.onreadystatechange = handleResponse;
    http.send(null);
}

function handleResponse() {
    if(http.readyState == 4){
        var response = http.responseText;
        var update = new Array();

        if(response.indexOf('|' != -1)) {
            update = response.split('|');
            document.getElementById(update[0]).innerHTML = update[1];
         
        }
    }
}
</script>


</head>

<body>
    <div id="kontakt">
   <form name="form" id="contactform">
     <table width="600" border="0" cellpadding="1">
       <tr>
         <td width="85">&nbsp;</td>
         <td width="152">Ime:<br /></td><td width="104">&nbsp;</td>
         <td width="152">E-mail:</td>
         <td width="85">&nbsp;</td>
       </tr>
       <tr>
         <td>&nbsp;</td>
         <td class="text"><input name="ime" type="text" id="ime" /></td>
         <td class="text">&nbsp;</td>
         <td><span class="text">
           <input name="email" type="text" id="email" />
         </span></td>
         <td>&nbsp;</td>
       </tr>
       <tr>
         <td>&nbsp;</td>
         <td>Kontakt telefon :</td>
         <td>&nbsp;</td>
         <td>Mobilni telefon: </td>
         <td>&nbsp;</td>
       </tr>
       <tr>
         <td>&nbsp;</td>
         <td class="text"><input name="tel" type="text" id="tel" /></td>
         <td class="text">&nbsp;</td>
         <td><span class="text">
           <input name="mob" type="text" id="mob" />
         </span></td>
         <td>&nbsp;</td>
       </tr>
       <tr>
         <td>&nbsp;</td>
         <td>&nbsp;</td>
         <td>&nbsp;</td>
         <td><label for="checkbox"></label></td>
         <td>&nbsp;</td>
       </tr>
       <tr>
         <td>&nbsp;</td>
         <td class="text">&nbsp;</td>
         <td class="text"><input name="send" type="submit" onclick="sendemail();" id="send" value="Pošalji"/></td>
         <td>&nbsp;</td>
         <td>&nbsp;</td>
       </tr>
     </table>
     <br />
     <p>&nbsp;</p>
     </form>
     <div id="contactarea">
     </div>
     </div>


Php kod


Code:
<?php

$to = "[email protected]"; //email adresa
$subject_prefix = ""; //prefiks

if(!isset($_GET['action']))
{
die("NO!");
}


$ime = trim($_GET['ime']);
$email = trim($_GET['email']);
$tel = trim($_GET['tel']);
$mob = trim($_GET['mob']);

mail($to,$ime,$tel,"From: ".$email."");

echo 'contactarea|Thank you '.$ime.', poslato.';
?>
[ Br@nkoR @ 30.10.2007. 08:19 ] @
U prethodnoh poruci naveo sam jednu grešku
Code:
var email = document.contactform..value;

Dakle između dve tačke trebalo bi da stoji "email".
Zatim sledeća greška je u liniji
Code:
var mob = document.contactform.net.value;

Ne postoji polje sa imenom "net", verovatno si mislio na "mob".

Zatim FF ne podržava pristup nekom elementu pomoću
Code:
document.IDelementa

Već koristi metod getElementById().

Pošto si već dodelio, submit dugmetu, događaj click na koji pozivaš funkciju sendemail, poništi podrazumevanu akciju (klikom na submit dugme) form elementa, npr. tako što ćeš događaju submit form elementa dodeliti vrednost return false.

Takođe omogući i korisnicima koji nemaju aktiviran JS ili im browser ne podržava XMLHttpRequest upotrebu forme.

Nadam se da sam bio dovoljno jasan i da nisam propustio nijednu više grešku u kôdu.