Delete με checkbox

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

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

Απάντηση
Άβαταρ μέλους
vassilism
Δημοσιεύσεις: 1950
Εγγραφή: 17 Μαρ 2007 14:47
Επικοινωνία:

Delete με checkbox

Δημοσίευση από vassilism » 12 Οκτ 2007 16:14

Καλησπέρα σας.
Θέλω να φτιάξω ένα script που να μου διαγράφει τις εγγραφές από την mysql με checkbox.
Δηλαδή να τσεκάρω τν εγγραφή που θέλω κ να την διαγράφω.
Γνωρίζει κάποιος πως γίνετε αυτό?
Κάτι σαν αυτό:
Συνημμένα
χωρίς τίτλο.bmp

Άβαταρ μέλους
dva_dev
Script Master
Δημοσιεύσεις: 3790
Εγγραφή: 16 Σεπ 2005 01:32
Επικοινωνία:

Delete με checkbox

Δημοσίευση από dva_dev » 12 Οκτ 2007 17:47

Μια απλή περιγραφή της διαδικασίας είναι εξής:

1) Στη σελίδα που εμφανίζει τις εγγραφές θα μπορούσες εκεί που διαβάζεις τις εγγραφές σου από τη βάση και να φτιάχνεις τα checkboxes με το ίδιο name(π.χ."ΑΑΑ") σε όλα, και id το id της εγγραφής από τη βάση.
2) Θα βάλεις client side κώδικα (javascript) στην ίδια σελίδα ώστε όταν πατήσεις το κουμπί να μαζέψεις όλα τα elements με name="ΑΑΑ", και αυτά που είναι επιλεγμένα θα τα βάλεις σε ένα string (με διαχωριστικό για τις τιμές π.χ. το ",").
Θα βάλεις αυτό το string σε ένα πεδίο φόρμας(hidden) και θα κάνεις post τη φόρμα σου σε μια (άλλη),
ή
θα περάσεις το string αυτό σαν παράμετρο στο url μιας άλλης σελίδας που θα κάνεις redirect.
3) Στην άλλη σελίδα θα βάλεις λίγο php κώδικα για να διαβάζεις το string που σου έχει έρθει σαν παράμετρος και να φτιάξεις+τρέξεις το query που θα σβήσει αυτά τα ids.

Άβαταρ μέλους
Banavas
Script Master
Δημοσιεύσεις: 1367
Εγγραφή: 21 Νοέμ 2004 20:25
Επικοινωνία:

Delete με checkbox

Δημοσίευση από Banavas » 12 Οκτ 2007 18:17

Πολύ περίπλοκο μου φάνηκε το παραπάνω σενάριο.

Νομίζω οτι μπορεί να γίνει πολύ πιο απλά με ΡΗΡ μόνο. Μπορείς να 'χτίσεις' μια φόρμα δυναμικά με checkbox name το id του κάθε record. Aυτό θα σου περάσει για κάθε record μια μεταβλητή με όνομα $_POST['αριθμός_id'] που θα έχει μια τιμή ανάλογα με το ν είναι τσεκαρισμένο το κουτάκι.

Κάνεις και μια ρουτίνα να σκανάρεις τη βάση και να ελέγχεις την τιμή της μεταβλητής και ανάλογα να διαγράφεις ή όχι την συγκεκριμένη εγγραφή.

Το επιλογή όλων χρειάζεται μια επιπλέον μεταβλητή κατά την δημιουργία της φόρμας ώστε αν η τιμή της είναι π.χ. =1 να δίνει τιμή checked στο checkbox.
Happy coding....
Μάρκος
http://lasernet.gr

Άβαταρ μέλους
fafos
Script Master
Δημοσιεύσεις: 6231
Εγγραφή: 30 Νοέμ 2004 03:09

Delete με checkbox

Δημοσίευση από fafos » 12 Οκτ 2007 18:56

Banavas έγραψε:Πολύ περίπλοκο μου φάνηκε το παραπάνω σενάριο.

Νομίζω οτι μπορεί να γίνει πολύ πιο απλά με ΡΗΡ μόνο. Μπορείς να 'χτίσεις' μια φόρμα δυναμικά με checkbox name το id του κάθε record. Aυτό θα σου περάσει για κάθε record μια μεταβλητή με όνομα $_POST['αριθμός_id'] που θα έχει μια τιμή ανάλογα με το ν είναι τσεκαρισμένο το κουτάκι.

Κάνεις και μια ρουτίνα να σκανάρεις τη βάση και να ελέγχεις την τιμή της μεταβλητής και ανάλογα να διαγράφεις ή όχι την συγκεκριμένη εγγραφή.

Το επιλογή όλων χρειάζεται μια επιπλέον μεταβλητή κατά την δημιουργία της φόρμας ώστε αν η τιμή της είναι π.χ. =1 να δίνει τιμή checked στο checkbox.
yep.. symfono...

aplos kaleis ta stoixeia apo thn vash sou kai me ena while ta kaneis lista.. meta dineis ena if kai diagrafeis.. paradeigma gia to delete:

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

<?
if&#40;$delete&#41;&#123;
for&#40;$i=0;$i<$count;$i++&#41;&#123;
$del_id = $checkbox&#91;$i&#93;;
$sql = "DELETE FROM onomatable WHERE id='$del_id'";
$result = mysql_query&#40;$sql&#41;;
&#125;

if&#40;$result&#41;&#123;
echo "<meta http-equiv="refresh" content="0;URL=delete.php">";
&#125;
&#125;
mysql_close&#40;&#41;;
?>

Άβαταρ μέλους
dik_
Δημοσιεύσεις: 476
Εγγραφή: 07 Ιουν 2007 11:28

Delete με checkbox

Δημοσίευση από dik_ » 12 Οκτ 2007 19:02

Ή για οικονομία:

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

$sql = "DELETE FROM onomatable WHERE id IN &#40;".implode&#40;",", $checkbox&#41;."&#41;";

Άβαταρ μέλους
dva_dev
Script Master
Δημοσιεύσεις: 3790
Εγγραφή: 16 Σεπ 2005 01:32
Επικοινωνία:

Delete με checkbox

Δημοσίευση από dva_dev » 12 Οκτ 2007 21:31

Το μάζεμα των ids προτείνετε να μεταφερθεί στον server αντί να αναλάβει να το κάνει ο client ή είναι και κάτι άλλο που δεν το βλέπω;

[edit]
Banavas έγραψε:Το επιλογή όλων χρειάζεται μια επιπλέον μεταβλητή κατά την δημιουργία της φόρμας ώστε αν η τιμή της είναι π.χ. =1 να δίνει τιμή checked στο checkbox.
To επιλογή όλων, θα το πατάει (φαντάζομαι) ο χρήστης μετά τη δημιουργία της φόρμας, οπότε δεν θα μπορεί να δίνει τιμή "checked" σε όλα τα checkboxes εκ των προτέρων, εκτός αν εννοείς να περνάει ακόμα μια μεταβλητή με post για το συγκεκριμένο.
[/edit]

Άβαταρ μέλους
vassilism
Δημοσιεύσεις: 1950
Εγγραφή: 17 Μαρ 2007 14:47
Επικοινωνία:

Delete με checkbox

Δημοσίευση από vassilism » 13 Οκτ 2007 01:17

Παιδία σας ευχαριστώ πολύ για τις απαντήσεις σας.
Την λογική την κατάλαβα.
Αν καταφέρω να το φτιάξω θα σας το κάνω post σε περίπτωση που σας χρειασθεί.

Άβαταρ μέλους
p_pan
Δημοσιεύσεις: 1248
Εγγραφή: 11 Φεβ 2007 20:45
Τοποθεσία: Άστεγος!

Delete με checkbox

Δημοσίευση από p_pan » 13 Οκτ 2007 02:42

xoris na 8elo na to paijo idimon kai xoris na prosbalo osous exoun apantisi... gia emena 8a htan kalitera kai poio eukola... an px emfanizeis tis eggrafes se orizontia morfi tin mia kato apo tin alli na baleis ena mikro checkbox sto deji deiji meros tis eggrafis (h opou esu 8es.) kai sto telos na pros8eseis kai to submit button.. opote o xristeis na mporei na diagracei kai alles ektos apo mia eggrafes... apo tin alli 8a mporouses na baleis ena link gia delete to opoio meso mias GET na stelnei to id tis eggrafis se ena popup para8iro to opoio 8a exei mikro mege8os kai na leei px 8elete sigoura na diagracete tin tade eggrafi???? kai apo kato to name tis eggrafis h telos panton auto p tin xaraktirizei.. kai ekei na baleis to submit button.
mesa sto sabbatokuriako 8a anebaso kapoio kodika na deis...
bb..
Αγράματος...

Άβαταρ μέλους
p_pan
Δημοσιεύσεις: 1248
Εγγραφή: 11 Φεβ 2007 20:45
Τοποθεσία: Άστεγος!

Delete με checkbox

Δημοσίευση από p_pan » 13 Οκτ 2007 03:02

loipon epidi ayti tin stigmi den eimai sto pc m kai den 8umamai me tpt pos mporeis na baleis se link javascript kai na stelnei kai get mazi... gia na min po kamia blakia an kapoios dei to post kai 8umatai as to stilei.. h akoma kai an to jeris esu... ego o kodikas p s dino einai o ejis..:

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

<?php 
$id = $_GET&#91;id&#93;
include&#40;"connect_db.php"&#41;;
echo "molis diagracate tin eggrafi me id&#58; $id";
$sql = "DELETE * FROM my_table WHERE id = $id";
$result = mysql_query&#40;$sql&#41; or die&#40;mysql_error&#40;&#41;&#41;;
/*bazeis edo kai ena link gia na kleinei to para8iro kai eisai komple..*/
?>


auto upoti8ete oti 8a to baleis sto para8iro popup pou 8a anoigi...!!!!
Αγράματος...

Άβαταρ μέλους
Banavas
Script Master
Δημοσιεύσεις: 1367
Εγγραφή: 21 Νοέμ 2004 20:25
Επικοινωνία:

Delete με checkbox

Δημοσίευση από Banavas » 13 Οκτ 2007 09:49

dva_dev έγραψε:Το μάζεμα των ids προτείνετε να μεταφερθεί στον server αντί να αναλάβει να το κάνει ο client ή είναι και κάτι άλλο που δεν το βλέπω;

[edit]
Banavas έγραψε:Το επιλογή όλων χρειάζεται μια επιπλέον μεταβλητή κατά την δημιουργία της φόρμας ώστε αν η τιμή της είναι π.χ. =1 να δίνει τιμή checked στο checkbox.
To επιλογή όλων, θα το πατάει (φαντάζομαι) ο χρήστης μετά τη δημιουργία της φόρμας, οπότε δεν θα μπορεί να δίνει τιμή "checked" σε όλα τα checkboxes εκ των προτέρων, εκτός αν εννοείς να περνάει ακόμα μια μεταβλητή με post για το συγκεκριμένο.
[/edit]
1. H πρόταση έχει να κάνει με την απλότητα. Ότι μπορείς να κάνεις με 1 γραμμή κώδικα δεν υπάρχει λόγος να γίνει με 10.

2. Eννοώ οτι μπορεί μετά την δημιουργία της φόρμας να εμφανίζει ένα πλήκτρο το οποίο με GET θα περνάει μια μεταβλητή πχ $all με τιμή =1 ή τίποτα. Αυτό θα έχει σαν αποτέλεσμα να ξαναδημιουργηθεί η φόρμα με όλα τα checkbox ενεργοποιημένα.
Happy coding....
Μάρκος
http://lasernet.gr

Άβαταρ μέλους
vassilism
Δημοσιεύσεις: 1950
Εγγραφή: 17 Μαρ 2007 14:47
Επικοινωνία:

Delete με checkbox

Δημοσίευση από vassilism » 14 Οκτ 2007 16:13

Σ'ευχαριστώ p_pan.
Αν έχεις κάποιο έτοιμο script να μου δώσεις να δοκιμάσω, θα με έβγαζε από μεγάλο κόπο.

Άβαταρ μέλους
p_pan
Δημοσιεύσεις: 1248
Εγγραφή: 11 Φεβ 2007 20:45
Τοποθεσία: Άστεγος!

Delete με checkbox

Δημοσίευση από p_pan » 15 Οκτ 2007 04:32

loipon to douleces to script p s estila???? kolises pou8ena??
Αγράματος...

Άβαταρ μέλους
vassilism
Δημοσιεύσεις: 1950
Εγγραφή: 17 Μαρ 2007 14:47
Επικοινωνία:

Delete με checkbox

Δημοσίευση από vassilism » 16 Οκτ 2007 22:10

p_pan το δούλεψα τον κώδικα που μου έδωσες.
Είχε λίγα μικρά λαθάκια αλλά τα διόρθωσα και δουλεύει κανονικά.
Ωστόσο αυτό που ήθελα αρχικά να φτιάξω με τα checkbox δεν το έχω καταφέρει ακόμα.
Ελπίζω σιγά σιγά να το φτιάξω.

Άβαταρ μέλους
p_pan
Δημοσιεύσεις: 1248
Εγγραφή: 11 Φεβ 2007 20:45
Τοποθεσία: Άστεγος!

Delete με checkbox

Δημοσίευση από p_pan » 17 Οκτ 2007 01:37

sorry re apla den eimai kai ego sto pc m.... kai den exo kai ola mprosta m na ta testaro.... an gineis ligo poio analitikos na katalabo ti 8es akribos na kaneis kai na se boh8iso....
Αγράματος...

Άβαταρ μέλους
vassilism
Δημοσιεύσεις: 1950
Εγγραφή: 17 Μαρ 2007 14:47
Επικοινωνία:

Delete με checkbox

Δημοσίευση από vassilism » 18 Οκτ 2007 20:55

Θέλω να φτιάξω ένα script που να μου διαγράφει τις εγγραφές από την mysql με checkbox.
Δηλαδή δίπλα σε κάθε εγγραφή να υπάρχει ένα checkbox όπου όταν το τσεκάρω και κάνω submit να διαγράφετε η αντίστοιχη εγγραφή.
Όπως στην εικόνα που έχω βάλει πάνο πάνο.

Απάντηση

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

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

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