Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Pomoc OnClick + php + ajax

[es] :: Javascript i AJAX :: Pomoc OnClick + php + ajax

[ Pregleda: 1828 | Odgovora: 8 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

wiktor91
Varazdin, Hrvatska

Član broj: 171052
Poruke: 116
*.adsl.net.t-com.hr.



Profil

icon Pomoc OnClick + php + ajax21.04.2009. u 21:23 - pre 182 meseci
Evo tražim več 1 sat po internetu nekakav example kako izvesti da kad stisnem na gumb da se izvrši neka php funkcija i samo to ali nigdje nemogu nači ništa dovoljno jednostavno jer se svugdje u svim tutorialima uvlače baze podataka i slične stvari koje mene uopče ne zanimaju a kao početniku u PHP i JS mi puno kompliciraju shvačanje AJAXa.

Evo da vam objasnim što zapravo želim.
Imam 4 gumba i kad stisnem na neki od njih želim da mi bez refreshanja stranice se izvede php funkcija exec(prog.exe lijevo) ako je npr. stisnuti gumb lijevo i to je to bez ikakvih kompliciranja.

Stvarno bi vas zamolio da me uputite kako to izvesti jer evo iskreno da vam kažem 1 sat tražim po internetu i nigdje nemogu nači nešto tako jednostavno.

Windows 95 /Win’ dz/: n., 32-bit extensions and a graphical shell for a 16-bit patch to an 8-bit operating system
originally coded for a 4-bit microprocessor, written by a 2-bit company, that can’t stand 1 bit of competition.
 
Odgovor na temu

Nikola Poša
Backend (PHP) developer
Beograd

Član broj: 173839
Poruke: 1616
*.adsl-a-1.sezampro.yu.



+33 Profil

icon Re: Pomoc OnClick + php + ajax22.04.2009. u 10:52 - pre 182 meseci
Evo npr. ovako:

Imaš neka četiri dugmeta (nadam se da je to taj gumb koji spominješ ), obrati pažnju na događaje onclick, i na ono što im se prosleđuje kao argument:
Code:

<input type = "button" name = "dugme1" onclick = "test(this.name);" />
<input type = "button" name = "dugme2" onclick = "test(this.name);" />
<input type = "button" name = "dugme3" onclick = "test(this.name);" />
<input type = "button" name = "dugme4" onclick = "test(this.name);" />

<p id = "poruka"></p>

A onda JavaScript kod... E sad, najbolje je da odma' kreneš sa nekim framework-om za JavaScript i AJAX, a ja bih ti preporučio jQuery, jer ima najbolju dokumentaciju u odnosu na ostale. Sa jQuery-jem, JavaScript kod bi izgledao ovako:
Code:

function test(name) {
    $.ajax({
        type: 'POST',
        url: 'test.php',
        data: 'dugme=' + name,
        success: function(msg) {
            $('#poruka').html(msg);
        }
    });
}

A bez jQuery ili bilo kog drugog pomagala za JavaScript i AJAX, taj kod bi izgledao ovako:
Code:

var xmlHttp;

function test(name) {
    xmlHttp = GetXmlHttpObject();
    if (xmlHttp == null) {
        alert ("Vaš browser ne podržava AJAX.");
        return;
    }
    
    var url = 'test.php';
    xmlHttp.onreadystatechange = promena;
    xmlHttp.open('POST', url, true);
    xmlHttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded; charset=UTF-8'); 
    xmlHttp.send('dugme=' + name);

}

function promena() {
    if (xmlHttp.readyState == 4) {
        document.getElementById('poruka').innerHTML = xmlHttp.responseText;
     }
}

function GetXmlHttpObject() {
    var xmlHttp = null;
    
    try {
        //Firefox, Opera 8.0+, Safari
        xmlHttp = new XMLHttpRequest();
    }
    catch (e) {
        //Internet Explorer
        try {
            xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
        }
        catch (e) {
            xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
        }
    }
    
    return xmlHttp;
}

Pa ti sad vidi...

A onda i PHP kod (test.php):
Code:

$dugme = $_POST['dugme'];

switch ($dugme)
{
    case 'dugme1':
    {
        echo 'Pritisnuto dugme1';
        break;
    }
    case 'dugme2':
    {
        echo 'Pritisnuto dugme2';
        break;
    }
    case 'dugme3':
    {
        echo 'Pritisnuto dugme3';
        break;
    }
    case 'dugme4':
    {
        echo 'Pritisnuto dugme4';
        break;
    }
}

Naravno, ovaj primer može da se odradi samo sa JavaScript-om, bez AJAX-a, ali ovo je čisto da vidiš kako ide ta komunikacija u pozadini...

[Ovu poruku je menjao Nikola Poša dana 23.04.2009. u 22:53 GMT+1]
 
Odgovor na temu

wiktor91
Varazdin, Hrvatska

Član broj: 171052
Poruke: 116
*.adsl.net.t-com.hr.



Profil

icon Re: Pomoc OnClick + php + ajax22.04.2009. u 13:58 - pre 182 meseci
E puno ti hvala! Ja sam Hrvat pa sam napisao gumb, moja greška.

Evo idem za petnaestak minuta isprobati pa javim što sam napravio!
Windows 95 /Win’ dz/: n., 32-bit extensions and a graphical shell for a 16-bit patch to an 8-bit operating system
originally coded for a 4-bit microprocessor, written by a 2-bit company, that can’t stand 1 bit of competition.
 
Odgovor na temu

wiktor91
Varazdin, Hrvatska

Član broj: 171052
Poruke: 116
*.adsl.net.t-com.hr.



Profil

icon Re: Pomoc OnClick + php + ajax23.04.2009. u 20:07 - pre 182 meseci
Na žalost ili ja nešto griješim ili nešto fali u kodu.
Neče raditi.
ajax.html
Code:

<head>
<title>Simple Ajax Example</title>
<script type="text/javascript" src="jquery.js">
function test(name) {
    $.ajax({
        type: 'POST',
        url: 'test.php',
        data: 'dugme=' + name,
        success: function(msg) {
            $('#poruka').html(msg);
        }
    });
}
</script>
</head>
<body>
<input name = "dugme1" type = "button" onclick = "test(this.name);" />
<input name = "dugme2" type = "button" onclick = "test(this.name);"  />
<input name = "dugme3" type = "button" onclick = "test(this.name);"  />
<input name = "dugme4" type = "button" onclick = "test(this.name);"  />

<p id = "poruka"></p>
</body>
</html>


test.php
Code:
<?
$dugme = $_POST['dugme'];

switch ($dugme)
{
    case 'dugme1':
    {
        echo 'Pritisnuto dugme1';
    }
    case 'dugme2':
    {
        echo 'Pritisnuto dugme2';
    }
    case 'dugme3':
    {
        echo 'Pritisnuto dugme3';
    }
    case 'dugme4':
    {
        echo 'Pritisnuto dugme4';
    }
}
?>


Evo i kada pokrenem ajax.html i poklikam gumbe ništa se ne događa...
U čemu je problem?

Windows 95 /Win’ dz/: n., 32-bit extensions and a graphical shell for a 16-bit patch to an 8-bit operating system
originally coded for a 4-bit microprocessor, written by a 2-bit company, that can’t stand 1 bit of competition.
 
Odgovor na temu

Nikola Poša
Backend (PHP) developer
Beograd

Član broj: 173839
Poruke: 1616
*.adsl-1.sezampro.yu.



+33 Profil

icon Re: Pomoc OnClick + php + ajax23.04.2009. u 21:51 - pre 182 meseci
Nadam se da ovde vidiš svoju grešku:
Code:

<script type="text/javascript" src="jquery.js">
function test(name) {
    $.ajax({
        type: 'POST',
        url: 'test.php',
        data: 'dugme=' + name,
        success: function(msg) {
            $('#poruka').html(msg);
        }
    });
}
</script>

Taj deo treba da izgleda ovako:
Code:

<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript">
function test(name) {
    $.ajax({
        type: 'POST',
        url: 'test.php',
        data: 'dugme=' + name,
        success: function(msg) {
            $('#poruka').html(msg);
        }
    });
}
</script>

I druga stvar, u onom PHP kodu, na kraju svakog case-a stavi break; (odma' posle onih echo-a), sad tek vidim da sam i ja to zaboravio u onom mom prvom post-u na ovoj temi...
 
Odgovor na temu

wiktor91
Varazdin, Hrvatska

Član broj: 171052
Poruke: 116
*.adsl.net.t-com.hr.



Profil

icon Re: Pomoc OnClick + php + ajax23.04.2009. u 22:43 - pre 182 meseci
Nemogu vjerovati koja greška...
Puno ti hvala na pomoči sad mi je puno toga jasnije, JavaScript nisam pisao 4 godine pa izgleda da sam puuuno toga zaboravio.


Napokon radi! Sad to moram primjeniti na svojem primjeru!
Windows 95 /Win’ dz/: n., 32-bit extensions and a graphical shell for a 16-bit patch to an 8-bit operating system
originally coded for a 4-bit microprocessor, written by a 2-bit company, that can’t stand 1 bit of competition.
 
Odgovor na temu

wiktor91
Varazdin, Hrvatska

Član broj: 171052
Poruke: 116
*.adsl.net.t-com.hr.



Profil

icon Re: Pomoc OnClick + php + ajax26.04.2009. u 15:12 - pre 182 meseci
Potrebna mi je još mala pomoč.
Ovaj problem sam rješio i sve radi odlično.

Sad smo koristili OnClick a mene zanima kako sad u sve to ugraditi i nekakvu funkciju npr. OnRelease ako uopče postoji nešto takvo u JavaScriptu.
Znači kada stisnem na gumb on izvršava program a čim ja pustim gumb on izvrši drugi program.
Ovo mi je dosta hitno, trebao bi to do navečer.
Windows 95 /Win’ dz/: n., 32-bit extensions and a graphical shell for a 16-bit patch to an 8-bit operating system
originally coded for a 4-bit microprocessor, written by a 2-bit company, that can’t stand 1 bit of competition.
 
Odgovor na temu

Nikola Poša
Backend (PHP) developer
Beograd

Član broj: 173839
Poruke: 1616
*.adsl-a-1.sezampro.yu.



+33 Profil

icon Re: Pomoc OnClick + php + ajax26.04.2009. u 19:01 - pre 182 meseci
Imaš događaje onmousedown (kad pritisneš klik miša) i onmouseup (... kada ga otpustiš). Njih takođe možeš da primeniš na dugme...
 
Odgovor na temu

wiktor91
Varazdin, Hrvatska

Član broj: 171052
Poruke: 116
*.adsl.net.t-com.hr.



Profil

icon Re: Pomoc OnClick + php + ajax26.04.2009. u 21:44 - pre 182 meseci
Jao, 5 puta sam listao ta događanja i nijednom nisam povezao onMouseUp s tim što trebam jer sam si u glavi vrtio da to izgleda nešto kao OnRelease ili slično. Problem sam rješio sa OnMouseOver koj mi čak i više odgovara nego onMouseUp u mojem primjeru.
Windows 95 /Win’ dz/: n., 32-bit extensions and a graphical shell for a 16-bit patch to an 8-bit operating system
originally coded for a 4-bit microprocessor, written by a 2-bit company, that can’t stand 1 bit of competition.
 
Odgovor na temu

[es] :: Javascript i AJAX :: Pomoc OnClick + php + ajax

[ Pregleda: 1828 | Odgovora: 8 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.