πολλαπλά submit σε φόρμα!

Σε αυτή την περιοχή μπορείτε να βρείτε ή να αναζητήσετε πληροφορίες σχετικές με την PHP

Συντονιστές: WebDev Moderators, Super-Moderators, PHP Moderators

Απάντηση
shad0w
Δημοσιεύσεις: 17
Εγγραφή: 19 Ιούλ 2010 19:33

πολλαπλά submit σε φόρμα!

Δημοσίευση από shad0w » 03 Αύγ 2010 18:55

Προσπαθώ να βάλω τρία submit buttons σε μία φόρμα εγγραφής,τροποιοποιήσης,διαγραφής εγγραφής απο βάση δεδομένων.

Ο τρόπος δήλωσης στην φόρμα είναι ο παρακάτω:

Κώδικας: Επιλογή όλων

<input type='<?php 
if&#40;!isset&#40;$_GET&#91;'identity'&#93;&#41;&#41;&#123;
	echo "submit";
&#125;else&#123;
	echo "hidden";
&#125;
?>' name="add" value="Insert"/>
<input type='<?php 
if&#40;isset&#40;$_GET&#91;'identity'&#93;&#41;&#41;&#123;
	echo "submit";
&#125;else&#123;
	echo "hidden";
&#125;
?>' name="edit" value="Edit"/>
<input type='<?php 
if&#40;isset&#40;$_GET&#91;'identity'&#93;&#41;&#41;&#123;
	echo "submit";
&#125;else&#123;
	echo "hidden";
&#125;
?>' name="delete" value="Delete"/>
Και ο έλεγχος απο το php αρχείο για το ποιό έχει επιλεχθεί γίνεται με τον παρακάτω τρόπο.

Κώδικας: Επιλογή όλων

<?php
if&#40;isset&#40;$_POST&#91;'add'&#93;&#41; || isset&#40;$_POST&#91;'delete'&#93;&#41; || isset&#40;$_POST&#91;'edit'&#93;&#41;&#41;
&#123;
             if&#40;isset&#40;$_POST&#91;'add'&#93;&#41;&#123;Κώδικας για add&#125;
 
             if&#40;isset&#40;$_POST&#91;'edit'&#93;&#41;&#123;Κώδικας για edit&#125;

             if&#40;isset&#40;$_POST&#91;'delete'&#93;&#41;&#123;Κώδικας για delete&#125;
&#125;else&#123;
     echo "Form isn't submitted.";
&#125;
?>
  

Στην φόρμα άν έχει πάρει τιμή το identity με GET μεθοδο,τότε κρύβεται το Insert submit button,αλλιώς εμφανίζονται τα submit buttons Edit και Delete.

Αν δώσω identity το edit και το delete δουλεύουν σωστά.

Αν όμως δεν δώσω identity τότε το Add πέρα απο Add κάνει και delete,ή edit και delete.

Μπορεί να το εξηγήσει κάποιος γιατί γίνεται αυτό; :roll:

shad0w
Δημοσιεύσεις: 17
Εγγραφή: 19 Ιούλ 2010 19:33

πολλαπλά submit σε φόρμα!

Δημοσίευση από shad0w » 03 Αύγ 2010 19:49

Έκανα με έναν διαφορετικό τρόπο την εμφάνιση των submit και φαίνεται να δουλεύει.

Αυτό που μάλλον έκανα λάθος πρίν ήταν ότι το hidden δεν περνάει ώς false στην isset().

Κώδικας: Επιλογή όλων

<?php
if&#40;isset&#40;$_GET&#91;'identity'&#93;&#41;&#41;&#123;
echo '<input type="submit" name="edit" value="Edit"/>';
echo '<input type="submit" name="delete" value="Delete"/>';
&#125;else&#123;
echo '<input type="submit" name="add" value="Insert"/>';
&#125;
?>

Άβαταρ μέλους
cpulse
Script Master
Δημοσιεύσεις: 1527
Εγγραφή: 21 Μαρ 2006 19:30
Τοποθεσία: Αθήνα village
Επικοινωνία:

πολλαπλά submit σε φόρμα!

Δημοσίευση από cpulse » 05 Αύγ 2010 05:20

Τα hidden λειτουργούν σαν text. Ό,τι τιμή περνάς στο value τους περνάει αυτούσιο σαν να ήταν κείμενο σε textfield. Τα submit όμως είναι μεταβλητές ψώνια. Μόνο ένα περνάει. Η μέθοδος σου με το isset μπορεί να λειτουργήσει μόνο με submit inputs.

Όμως υπάρχει και κάτι ακόμα που ίσως δεν έχεις λάβει υπόψιν σου. Στην περίπτωση που ο χρήστης πατήσει Enter αντί για κάποιο κουμπί ο browser στέλνει το πρώτο submit που έχεις γράψει στον κώδικα. Οπότε προβλεψε κι ένα σοφό layout για να μην έχεις τέτοια conflicts.

shad0w
Δημοσιεύσεις: 17
Εγγραφή: 19 Ιούλ 2010 19:33

πολλαπλά submit σε φόρμα!

Δημοσίευση από shad0w » 05 Αύγ 2010 15:48

Ναι το κατάλαβα μετά για το hidden. :)
Το πρώτο με ενδιαφέρει,γιαυτό και έδωσα αυτή τη σειρά δήλωσης.

Αλλά αν υπάρχει καλύτερη υλοποιήση στείλε μου κάποιο παράδειγμα που μπορεί να έχει πρόβλημα.

Απάντηση

Επιστροφή στο “PHP Προγραμματισμός”

Μέλη σε σύνδεση

Μέλη σε αυτήν τη Δ. Συζήτηση: Δεν υπάρχουν εγγεγραμμένα μέλη και 0 επισκέπτες