Toon posts:

[AJAX] Knoppen herkennen in verwerkbestand

Pagina: 1
Acties:

Verwijderd

Topicstarter
Hoi,

Ik zit met een probleempje bij het verwerken van een formulier met AJAX. Ik heb dus één formulier, met 3 knoppen. Het formulier bestaat uit een aantal checkboxes met allemaal een andere naam. Je kan een item selecteren, en daar heb je drie opties mee.

Nu lukt het verzenden van het formulier naar een bestand wel (door middel van prototype-1.3.1) maar eenmaal aangekomen bij het verwerkbestand, kan ik niet zien op welke knop er gedrukt is.

De enigste manier die ik weet, is de functie laten verwijzen naar 'verwerkbestand.php?knop=delete', en dan in het verwerkbestand via de $_GET['knop'] verdergaan. maar is dit wel veilig? Aangezien er in de bron is te zien waar het script naar luistert..

De type van de button is 'button', ipv 'submit', dus ik kan ook niet $_POST['knopnaam'] werken...

Weet iemand een oplossing hiervoor?

  • orf
  • Registratie: Augustus 2005
  • Laatst online: 15:08

orf

Als je de waarde van een knop op een andere manier meegeeft, dan is dit net zo 'gevaarlijk' als een GET.

De rechten die iemand heeft handel je af in het verwerkbestand. Als iemand op verwijderen heeft geklikt, of zelf het script heeft aangeroepen met als parameter 'verwijderen', dan moet je dat daar controleren.

  • crisp
  • Registratie: Februari 2000
  • Nu online

crisp

Devver

Pixelated

Je zal dus in je Ajax-script een parameter mee moeten geven aan je POST-body die de betreffende actie definieerd. Ga overigens aub geen GET gebruiken voor dit soort zaken.

Intentionally left blank


Verwijderd

Topicstarter
Ik denk dat ik begrijp wat je bedoel. Maar als ik het volgende maak:
JavaScript:
1
2
3
4
5
function sendme(formnaam,div,pagina,knop){
        var params = Form.serialize($(formnaam));
        var tekens = params+'$knop='+knop;
        new Ajax.Updater(div, pagina, {asynchronous:true, evalScripts:true, parameters:tekens});
    }

en in het PHP bestand echo ik '$knop' krijg ik niets te zien, terwijl 'knop' in de javascript wel de waarde heeft die ik meegaf.

Ik roep de functie aan met:
JavaScript:
1
 onClick="sendme('formnaam','div','verwerk.php','knopnaam');"

wat doe ik fout?

  • Kvn
  • Registratie: Maart 2001
  • Laatst online: 28-11 10:32

Kvn

? of & ipv $?

Verwijderd

Topicstarter
:D dankjewel! ik gebruik nu:
JavaScript:
1
2
3
4
function sendme(formnaam,div,pagina,knop){
        var params = Form.serialize($(formnaam));
        new Ajax.Updater(div, pagina, {asynchronous:true, evalScripts:true, parameters:params+'&tsc='+knop});
    }

en roep de functie aan met:
JavaScript:
1
onClick="sendme('droppen','alles','invent_script.php','drop_vast');"


In het PHP bestand kan ik dan met $_POST['tsc'] de waarde 'drop_vast' ontvangen :D

dus voor de mensen die het nog willen weten, dit is de oplossing ;)

bedankt!
Pagina: 1