Προς το περιεχόμενο

html πίνακες οι οποίοι αλλάζουν μέγεθος


varemarious

Προτεινόμενες αναρτήσεις

Δημοσ.

Καλημέρα ...

 

έχω δημιουργήσει μία φόρμα την οποία θα την συμπληρώνω εγώ και την αποστέλλω σε πελάτη ..

 

έχω μορφοποιήσει το μήνυμα που του στέλνω έτσι ώστε αυτό που λαμβάνει είναι html.

 

έχω πάνω στην φόρμα 10 στοιχεία (πεδία) σε κάθε αποστολή δεν θα συμπληρώνονται όλα... το έχω κάνει σε μορφή πίνακα για να είναι στοιχισμένα

 

το πρόβλημα μου είναι το εξής :

 

όταν θα συμπληρώσω π.χ. το 1 το 3 και το 8 ενδιάμεσα υπάρχουν κενά στον πίνακα καθώς έχω ορίσει το κάθε πεδίο να έχει τη θέση που θα γραφτεί όταν συμπληρωθεί.. πώς μπορώ τώρα εγώ να εξαλείψω αυτά τα κενά.. και όταν συμπληρώσω τα παραπάνω ο πίνακας μου να έχει το μέγεθος αυτών των τριών και όχι των 10 που έχω ορίσει εξ' αρχής..

 

 

όποια βοήθεια δεκτή.

ευχαριστώ..

Δημοσ.

Πώς στέλνεις τον μύνημα; Έχεις κάποιο script; Ενδεχομένως θα μπορούσες να διαβάζεις ποιά πεδία είναι συμπληρωμένα και να φτιάχνεις ένα καινούριο πίνακα με βάση αυτά και έπειτα να αποστέλεις τον νέο πίνακα στον πελάτη.

Δημοσ.

έχω το client side αρχείο για την αποστολή mail όπου έχω ορίσει τα πεδία με $post και μέσα στο $message έχω φτιαγμένο σε html μορφή έναν πίνακα και μερικά κείμενα..

 

δεν έχω κάποιο script που να κάνει αυτό που λες πως μπορώ να το πραγματοποιήσω ;

Δημοσ.

>if ($_POST['metavliti']!="")
   echo "<tr><td>onoma</td><td>timi</td></tr>";

κοκ...

+1

 

Ή αλλιώς

>echo empty($_POST['metavliti']) ? '' : '<tr><td>'.$_POST['metavliti'].'</td></tr>';

ή

>echo defined($_POST['metavliti']) ? '' : '<tr><td>'.$_POST['metavliti'].'</td></tr>';

ή

>echo isset($_POST['metavliti']) ? '' : '<tr><td>'.$_POST['metavliti'].'</td></tr>';

 

Επίσης δεν γνωρίζω πώς είναι το script σου, αλλά μπορείς να «παίξεις» και με πίνακες για περισσότερη ευκολία. Για παράδειγμα (δεν είναι δοκιμασμένο):

>
echo '<table>';
foreach($i=0; $i<count($_POST['metavliti']);$i++)
  echo '<tr><td>'.$_POST['metavliti'][$i].'</td></tr>';
echo '</table>';

Για να κάνεις το παραπάνω θα πρέπει όλα τα input πεδία σου να έχουν το ίδιο όνομα, για παράδειγμα

><input type="text" id="metavliti[]" name="metavliti[]" />

Τα "[]" δηλώνουν πίνακα.

Δημοσ.

μπορεί να μην το εξήγησα εγώ σωστά.

αυτό που ζήτησα... θέλω να φαίνεται μέσα στο $message δηλαδή μέσα στο mail που θα λαμβάνει ο πελάτης και όχι ένα echo την ώρα που αποστέλλω το μήνυμα..

 

δοκίμασα το κώδικα αυτόν μέσα στο message και δε δουλεύει μου πετάει error μέσα στο dreamweaver..

Δημοσ.

το πήρα από την αρχή με αυτά που μου προτείνατε και δούλεψε μια χαρά με το

 

>if ($_POST['metavliti']!="")
   echo "<tr><td>onoma</td><td>timi</td></tr>";

 

ευχαριστώ και πάλι. B)

Δημοσ.

+1

 

Ή αλλιώς

>echo empty($_POST['metavliti']) ? '' : '<tr><td>'.$_POST['metavliti'].'</td></tr>';

ή

>echo defined($_POST['metavliti']) ? '' : '<tr><td>'.$_POST['metavliti'].'</td></tr>';

ή

>echo isset($_POST['metavliti']) ? '' : '<tr><td>'.$_POST['metavliti'].'</td></tr>';

 

Επίσης δεν γνωρίζω πώς είναι το script σου, αλλά μπορείς να «παίξεις» και με πίνακες για περισσότερη ευκολία. Για παράδειγμα (δεν είναι δοκιμασμένο):

>
echo '<table>';
foreach($i=0; $i<count($_POST['metavliti']);$i++)
  echo '<tr><td>'.$_POST['metavliti'][$i].'</td></tr>';
echo '</table>';

Για να κάνεις το παραπάνω θα πρέπει όλα τα input πεδία σου να έχουν το ίδιο όνομα, για παράδειγμα

><input type="text" id="metavliti[]" name="metavliti[]" />

Τα "[]" δηλώνουν πίνακα.

 

Έχω την εντύπωση ότι μόνο τα chekbox μπορείς να ελέγξεις με την isset (και την defined), καθώς όλα τα άλλα περνάνε τη μεταβλητή και την δηλώνουν σαν null. Διόρθωσέ με αν κάνω λάθος

Δημοσ.

isset

Determine if a variable is set and is not NULL.

Συνεπώς η isset επιστρέφει false αν η μεταβλητή είναι null ή αν δεν έχει οριστεί. Επιπλέον έχει την ευκολία του οτι μπορείς να ελέγξεις παραπάνω από μια μεταβλητές αν υπάρχουν.

Για την defined ίσως να έχεις δίκιο.

 

Περισσότερο πάντως ανέφερα αυτές τις functions απλά για να υπάρχει και μια ακόμα γνώμη.

 

Edit:

Τώρα είδα ότι η isset το '' (κενό) δεν το θεωρεί σαν null, άρα μάλλον έχεις δίκιο.

Δημοσ.

isset

 

Συνεπώς η isset επιστρέφει false αν η μεταβλητή είναι null ή αν δεν έχει οριστεί. Επιπλέον έχει την ευκολία του οτι μπορείς να ελέγξεις παραπάνω από μια μεταβλητές αν υπάρχουν.

Για την defined ίσως να έχεις δίκιο.

 

Περισσότερο πάντως ανέφερα αυτές τις functions απλά για να υπάρχει και μια ακόμα γνώμη.

 

Edit:

Τώρα είδα ότι η isset το '' (κενό) δεν το θεωρεί σαν null, άρα μάλλον έχεις δίκιο.

Η isset το "" δεν το θεωρεί κενό οπότε σου επιστρέφει true (πχ το $hello=""). Επίσης κάνει το ίδιο αν βάλεις το: "0" το οποίο το θεωρεί string.

Για να δεις αν είναι κενή μια μεταβλητή ("") χρησιμοποίησε την empty().

Επίσης η empty() συμπεριλαμβάνει και την isset() με το πρόσθετο ότι ελέγχει και την τιμή της. Ουσιαστικά η isset() ελέγχει μόνο αν μια μεταβλητή έχει δημιουργηθεί ή όχι, χωρίς να εξετάζει την τιμή της.

Αρχειοθετημένο

Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.

  • Δημιουργία νέου...