varemarious Δημοσ. 7 Ιανουαρίου 2011 Δημοσ. 7 Ιανουαρίου 2011 Καλημέρα ... έχω δημιουργήσει μία φόρμα την οποία θα την συμπληρώνω εγώ και την αποστέλλω σε πελάτη .. έχω μορφοποιήσει το μήνυμα που του στέλνω έτσι ώστε αυτό που λαμβάνει είναι html. έχω πάνω στην φόρμα 10 στοιχεία (πεδία) σε κάθε αποστολή δεν θα συμπληρώνονται όλα... το έχω κάνει σε μορφή πίνακα για να είναι στοιχισμένα το πρόβλημα μου είναι το εξής : όταν θα συμπληρώσω π.χ. το 1 το 3 και το 8 ενδιάμεσα υπάρχουν κενά στον πίνακα καθώς έχω ορίσει το κάθε πεδίο να έχει τη θέση που θα γραφτεί όταν συμπληρωθεί.. πώς μπορώ τώρα εγώ να εξαλείψω αυτά τα κενά.. και όταν συμπληρώσω τα παραπάνω ο πίνακας μου να έχει το μέγεθος αυτών των τριών και όχι των 10 που έχω ορίσει εξ' αρχής.. όποια βοήθεια δεκτή. ευχαριστώ..
macabre_sunsets Δημοσ. 7 Ιανουαρίου 2011 Δημοσ. 7 Ιανουαρίου 2011 Πώς στέλνεις τον μύνημα; Έχεις κάποιο script; Ενδεχομένως θα μπορούσες να διαβάζεις ποιά πεδία είναι συμπληρωμένα και να φτιάχνεις ένα καινούριο πίνακα με βάση αυτά και έπειτα να αποστέλεις τον νέο πίνακα στον πελάτη.
varemarious Δημοσ. 7 Ιανουαρίου 2011 Μέλος Δημοσ. 7 Ιανουαρίου 2011 έχω το client side αρχείο για την αποστολή mail όπου έχω ορίσει τα πεδία με $post και μέσα στο $message έχω φτιαγμένο σε html μορφή έναν πίνακα και μερικά κείμενα.. δεν έχω κάποιο script που να κάνει αυτό που λες πως μπορώ να το πραγματοποιήσω ;
dewn735 Δημοσ. 7 Ιανουαρίου 2011 Δημοσ. 7 Ιανουαρίου 2011 >if ($_POST['metavliti']!="") echo "<tr><td>onoma</td><td>timi</td></tr>"; κοκ...
macabre_sunsets Δημοσ. 7 Ιανουαρίου 2011 Δημοσ. 7 Ιανουαρίου 2011 >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[]" /> Τα "[]" δηλώνουν πίνακα.
varemarious Δημοσ. 7 Ιανουαρίου 2011 Μέλος Δημοσ. 7 Ιανουαρίου 2011 μπορεί να μην το εξήγησα εγώ σωστά. αυτό που ζήτησα... θέλω να φαίνεται μέσα στο $message δηλαδή μέσα στο mail που θα λαμβάνει ο πελάτης και όχι ένα echo την ώρα που αποστέλλω το μήνυμα.. δοκίμασα το κώδικα αυτόν μέσα στο message και δε δουλεύει μου πετάει error μέσα στο dreamweaver..
macabre_sunsets Δημοσ. 7 Ιανουαρίου 2011 Δημοσ. 7 Ιανουαρίου 2011 Θέσε $message=''; και δοκίμασε να αντικαταστήσεις το echo με $message .= (προσοχή στην τελεία). Στο τέλος η $message θα περιέχει έναν «μεταβλητό» πίνακα.
orotoi Δημοσ. 7 Ιανουαρίου 2011 Δημοσ. 7 Ιανουαρίου 2011 ] ή >echo isset($_POST['metavliti']) ? '' : '<tr><td>'.$_POST['metavliti'].'</td></tr>'; +31337
varemarious Δημοσ. 7 Ιανουαρίου 2011 Μέλος Δημοσ. 7 Ιανουαρίου 2011 το πήρα από την αρχή με αυτά που μου προτείνατε και δούλεψε μια χαρά με το >if ($_POST['metavliti']!="") echo "<tr><td>onoma</td><td>timi</td></tr>"; ευχαριστώ και πάλι.
dewn735 Δημοσ. 7 Ιανουαρίου 2011 Δημοσ. 7 Ιανουαρίου 2011 +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. Διόρθωσέ με αν κάνω λάθος
macabre_sunsets Δημοσ. 7 Ιανουαρίου 2011 Δημοσ. 7 Ιανουαρίου 2011 isset Determine if a variable is set and is not NULL. Συνεπώς η isset επιστρέφει false αν η μεταβλητή είναι null ή αν δεν έχει οριστεί. Επιπλέον έχει την ευκολία του οτι μπορείς να ελέγξεις παραπάνω από μια μεταβλητές αν υπάρχουν. Για την defined ίσως να έχεις δίκιο. Περισσότερο πάντως ανέφερα αυτές τις functions απλά για να υπάρχει και μια ακόμα γνώμη. Edit: Τώρα είδα ότι η isset το '' (κενό) δεν το θεωρεί σαν null, άρα μάλλον έχεις δίκιο.
digimyth Δημοσ. 11 Ιανουαρίου 2011 Δημοσ. 11 Ιανουαρίου 2011 isset Συνεπώς η isset επιστρέφει false αν η μεταβλητή είναι null ή αν δεν έχει οριστεί. Επιπλέον έχει την ευκολία του οτι μπορείς να ελέγξεις παραπάνω από μια μεταβλητές αν υπάρχουν. Για την defined ίσως να έχεις δίκιο. Περισσότερο πάντως ανέφερα αυτές τις functions απλά για να υπάρχει και μια ακόμα γνώμη. Edit: Τώρα είδα ότι η isset το '' (κενό) δεν το θεωρεί σαν null, άρα μάλλον έχεις δίκιο. Η isset το "" δεν το θεωρεί κενό οπότε σου επιστρέφει true (πχ το $hello=""). Επίσης κάνει το ίδιο αν βάλεις το: "0" το οποίο το θεωρεί string. Για να δεις αν είναι κενή μια μεταβλητή ("") χρησιμοποίησε την empty(). Επίσης η empty() συμπεριλαμβάνει και την isset() με το πρόσθετο ότι ελέγχει και την τιμή της. Ουσιαστικά η isset() ελέγχει μόνο αν μια μεταβλητή έχει δημιουργηθεί ή όχι, χωρίς να εξετάζει την τιμή της.
Προτεινόμενες αναρτήσεις
Αρχειοθετημένο
Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.