Form with dynamic number of lists

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

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

Απάντηση
Άβαταρ μέλους
tsirman
Δημοσιεύσεις: 145
Εγγραφή: 14 Νοέμ 2002 22:57
Επικοινωνία:

Form with dynamic number of lists

Δημοσίευση από tsirman » 08 Απρ 2006 22:56

Γειά σας,

έχω μια φόρμα στη οποία θέλω ο χρήστης να μπορεί να επιλέγει αντικείμενα απο μία λίστα. Θέλω όμως να μπορεί να επιλέξει στην ίδια φόρμα παραπάνω απο ένα διαφορετικά αντικείμενα. Οπότε έχω δημιουρήσει 10 λίστες με το ίδιο σύνολο αντικειμένων. Έχω δύο προβλήματα:

Μπορώ όλο αυτό να το κάνω κάπως αλλιώς ώστε να μην φορτώνει 10 λίστες εξ αρχής (μιας και κάθε λίστα φορτώνει κάπου 2000 αντικείμενα);

Αν τελοςπαντων βρεθεί μια λύση πάνω στο πρώτο ερώτημα, πως θα προβάλλω την σελίδα στην ενέργεια του EDIT. Δηλαδή όταν θα θέλω να προβάλλω τις επιλογές ενός χρήστη ο οποίος θα έχει επιλέξει διάφορα αντικείμενα, πως είναι πιο σωστο να το προβάλλω όλο αυτό; Με λίστες πάλι ή με στατικές αναπαραστάσεις;

Ευχαριστώ

----

Τώρα θυμήθηκα ότι κάποιες άλλες εφαρμογές αυτό το κάνουν κάπως αλλιώς. Δηλαδή δίνουν μόνο μια λίστα και αφού επιλέξεις ένα αντικείμενο πατας submit σε κάποια εσωτερική φόρμα της όλης φόρμας και σώζει δυναμικά τις επιλογές. Οπότε αφού επιλέξει ο χρήστης όσα αντικείμενα θέλει, κάνει και το τελικό submit. Αυτό ίσως είναι βολικό...αλλά πως γίνεται;

----
Αν δε κάνω λάθος θέλω κάτι σας αυτό που έχει το phpmyadmin που μπορείς να προσθέτεις νέα πεδία σε υπάρχον table. Εκεί όσο πατάς το κουμπί για νέο πεδίο σου κρατάει ολα όσα έχεις συμπληρώσει ήδη και σου προσθέτει νέο πεδίο.

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

Form with dynamic number of lists

Δημοσίευση από cpulse » 13 Απρ 2006 10:55

Λύση 1: Με την PHP δημιούργησε μια λίστα σε JavaScript κι ένα onLoad event στο <body> το οποίο να κάνει populate την λίστα στα <select> tags.

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

function handleOnLoad&#40;&#41; &#123;
var opt = new Array&#40;&#41;;
opt&#91;'value1'&#93; = 'caption 1';
opt&#91;'value2'&#93; = 'caption 2';

var s = frm.select.options;
for &#40;k in opt&#41; s&#91;s.length&#93; = new Option&#40;opt&#91;k&#93;, k, false, false&#41;;
&#125;
Λύση 2: Κάνε <select> πολλαπλών επιλογών. Ο χρήστης απλά πατάει το Ctrl και αριστερό mouse click.

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

<select name="select&#91;&#93;" size="5" multiple="1">
  <option value="value1">caption 1</option>
  <option value="value2">caption 2</option>
</select>
Λύση 3: Στέλνε την σελίδα σου zippαρισμένη, οπότε και 200 000 αποτελέσματα να στέλνεις, η πραγματική μεταφορά να είναι ελάχιστη. Για να το κάνεις αυτό χρησιμοποίησε την ob_start("ob_gzhandler"); ... δες όμως πριν το manual για να ξέρεις ακριβώς τι κάνει αυτή η εντολή.

Απάντηση

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

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

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