Forms - stabilire ce buton submit a fost apasat

Ai o întrebare legată de PHP? Incercăm să îi găsim soluţie. Sau poate doar vrei să publici un cod interesant.

Moderatori: Zamolxe, Moderatori

catmanol
PHPRomania Supporter
Mesaje: 20
Membru din: Lun Apr 18, 2011 1:40 pm

Forms - stabilire ce buton submit a fost apasat

Mesajde catmanol » Lun Mai 23, 2011 1:50 pm

Ma gandeam sa fac un calculator in PHP. Am creat un buton pentru fiecare numar si operator insa m-am lovit de o problema: nu pot stabili ce buton submit a fost apasat.
Cum as putea identifica butonul care a fost apasat?



rudisoft
Average Member
Mesaje: 109
Membru din: Mar Feb 10, 2009 1:22 pm
Contact:

Mesajde rudisoft » Lun Mai 23, 2011 1:54 pm

Ca la orice alt câmp dintr-un formular: folosești atributul "name", pe care îl verifici în codul tău.

<input type="submit" name="buton001" />
Professional PSD/Image to XHTML/CSS services: Design2Code | Web Services | Android Developer

catmanol
PHPRomania Supporter
Mesaje: 20
Membru din: Lun Apr 18, 2011 1:40 pm

Mesajde catmanol » Lun Mai 23, 2011 4:18 pm

Ok, pun "name". Buton1,...,Buton9.

Dar cum stiu care dintre cele noua a fost apasat?
Variabila va fi memorata in $_POST['Buton1'] dar mi-ar trebui ceva gen 'Buton[i]', unde i sa ia valori de la unu la noua.
Deci intrebarea ar fi daca pot sa pun o variabila tablou la un buton submit.
Si cum o accesez dupa ce este apasata?

rudisoft
Average Member
Mesaje: 109
Membru din: Mar Feb 10, 2009 1:22 pm
Contact:

Mesajde rudisoft » Lun Mai 23, 2011 4:29 pm

<input type="submit" name="buton[001]" />
Professional PSD/Image to XHTML/CSS services: Design2Code | Web Services | Android Developer

Avatar utilizator
MihaiC
Senior Member
Mesaje: 1644
Membru din: Dum Mai 14, 2006 8:07 pm

Mesajde MihaiC » Lun Mai 23, 2011 6:33 pm

Verifici care dintre butoane e setat.

<pre> <?php print_r($_POST); ?> </pre>
<form action="" method="post">
<input type="submit" name="buton[001]" value="buton 1" />
<input type="submit" name="buton[002]" value="buton 2" />
<input type="submit" name="buton[003]" value="buton 3" />
<input type="submit" name="buton[004]" value="buton 4" />
<input type="submit" name="buton005" value="buton 5" />
<input type="submit" name="buton006" value="buton 6" />
<input type="submit" name="buton007" value="buton 7" />
<input type="submit" name="buton008" value="buton 8" />
</form>
Dev @ oblio.eu

catmanol
PHPRomania Supporter
Mesaje: 20
Membru din: Lun Apr 18, 2011 1:40 pm

Mesajde catmanol » Lun Mai 23, 2011 7:55 pm

Mersi mult.
Dar tot mai am o nelamurire.
De exemplu daca apas butonul 1 as vrea sa am ca rezultat o variabila cu valoarea 1.
Ceva asa ca $rezultat=$_POST[buton setat]...
Cum obtin valoarea butonului apasat intr-o variabila?

Avatar utilizator
MihaiC
Senior Member
Mesaje: 1644
Membru din: Dum Mai 14, 2006 8:07 pm

Mesajde MihaiC » Lun Mai 23, 2011 9:20 pm

<?php
if (!empty($_POST['buton'])) {
$rezultat = array_values($_POST['buton']);
echo $rezultat[0];
}
?>
<form action="" method="post">
<input type="submit" name="buton[001]" value="1" />
<input type="submit" name="buton[002]" value="2" />
<input type="submit" name="buton[003]" value="3" />
<input type="submit" name="buton[004]" value="4" />
</form>
Dev @ oblio.eu

catmanol
PHPRomania Supporter
Mesaje: 20
Membru din: Lun Apr 18, 2011 1:40 pm

Mesajde catmanol » Mar Mai 24, 2011 12:26 pm

Mersi mult de raspuns. Cumva ii dadusem si eu de cap insa acum mi-e foarte clar.
Acum ca am reusit sa identific ce buton este apasat m-am lovit de alta problema.
Am nevoie de o variabila, oarecum contor, care sa-mi concateneze numerele apasate. Ceva de genul: apas1 apare1, apoi apas doi apare 12, si asa mai departe.
Am pus o variabila insa din pacate o ia mereu de la capat. Banuiesc ca la fiecare apasare a unui buton pagina se reincarca si variabila nu tine minte nimic. Trebuie sa o memorez undeva insa nu stiu cum sa fac.

Avatar utilizator
MihaiC
Senior Member
Mesaje: 1644
Membru din: Dum Mai 14, 2006 8:07 pm

Mesajde MihaiC » Mar Mai 24, 2011 1:11 pm

[ontopic]
Sfat: foloseste session
[/ontopic]

[offtopic oarecum]
Alt sfat: fa-l in JavaScript, mie mi se pare aiurea sa faci o aplicatie d-asta server side.
[/offtopic oarecum]
Dev @ oblio.eu

catmanol
PHPRomania Supporter
Mesaje: 20
Membru din: Lun Apr 18, 2011 1:40 pm

Mesajde catmanol » Mar Mai 24, 2011 1:41 pm

Banuiesc ca in Java sau ASP.net ar fi mai usor insa nu stiu acum.
PHP pare rudimentar la anumite chestii insa vreau sa stiu cat mai mult despre el acum.
O sa incerc cu SESSION dar am vazut undeva intr-o carte variabile ce pot memora in RAM. O sa incerc ambele variante sa vad ce iese.
La o adica se poate memora variabila intr-un fisier extern, sau intr-o baza de date dar e mai mare daraua ca ocaua. Imi trebuie varianta cea mai simpla si mai usor de accesat.

Avatar utilizator
vectorialpx
Senior Member
Mesaje: 4832
Membru din: Mar Mar 01, 2005 9:48 am
Localitate: Bucuresti
Contact:

Mesajde vectorialpx » Mar Mai 24, 2011 4:23 pm

Ai un camp hidden, numit (cu ID eventual) campGeneric
<submit1 onclick="return setValToGeneric(1)">
<submit1 onclick="return setValToGeneric(2)">
......
<submit1 onclick="return setValToGeneric(3)">

unde setValToGeneric() atribuie campului campGeneric valoarea pe care o are setata, face form.submit si returneaza false


Înapoi la “Cod PHP”

Cine este conectat

Utilizatori ce ce navighează pe acest forum: Niciun utilizator înregistrat și 34 vizitatori