Pagina 1 din 1

Forms - stabilire ce buton submit a fost apasat

Scris: Lun Mai 23, 2011 1:50 pm
de catmanol
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?

Scris: Lun Mai 23, 2011 1:54 pm
de rudisoft
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" />

Scris: Lun Mai 23, 2011 4:18 pm
de catmanol
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?

Scris: Lun Mai 23, 2011 4:29 pm
de rudisoft
<input type="submit" name="buton[001]" />

Scris: Lun Mai 23, 2011 6:33 pm
de MihaiC
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>

Scris: Lun Mai 23, 2011 7:55 pm
de catmanol
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?

Scris: Lun Mai 23, 2011 9:20 pm
de MihaiC
<?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>

Scris: Mar Mai 24, 2011 12:26 pm
de catmanol
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.

Scris: Mar Mai 24, 2011 1:11 pm
de MihaiC
[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]

Scris: Mar Mai 24, 2011 1:41 pm
de catmanol
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.

Scris: Mar Mai 24, 2011 4:23 pm
de vectorialpx
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