πρόβλημα με εξαρτήσεις και disables φόρμας

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

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

Απάντηση
butterfly88
Δημοσιεύσεις: 6
Εγγραφή: 19 Οκτ 2011 21:43

πρόβλημα με εξαρτήσεις και disables φόρμας

Δημοσίευση από butterfly88 » 19 Οκτ 2011 23:24

Καλησπέρα σε όλους!!!
Είμαι νέα στο φόρουμ και αφορμή να γραφτώ είναι η απελπισία που με έπιασε σήμερα με την php.
Έχω μία άσκηση για υλοποίηση μιας σειράς από ερωτήσεις. Ο χρήστης απαντά σε κάθε μία ερώτηση ανάλογα με τον τύπο της... δλδ μπορεί να είναι τύπου ναι ή όχι, ναι ή όχι ή δεν ξέρω(όλα αυτά τα έχω υλοποίησει με selects), text κλπ.
Το πρόβλημά μου είναι ότι αυτές οι ερωτήσεις είναι πάρα πολλές οπότε για να μην γίνεται ένα τεράστιο scroll down τις χώρισα σε σελίδες. Όμως επειδή μεταξύ τους έχουν εξαρτήσεις, δλδ για παράδειγμα
ερώτηση 4: είσαι χορτοφάγος? (ένα select με ναι ή όχι για απάντηση)
ερώτηση 4.1: αν ναι, ποιό είναι το αγαπημένο σου λαχανικό? (ένα select πχ με διάφορες πιθανές απαντήσεις)

Οπότε, για να είναι πιο εμφανήσιμο και να μην μπερδεύεται ο χρήστης, κάνω αρχικά disabled την ερώτηση 4.1 και αν απαντήσει ναι, τότε μόνο θα ξεγκριζαριστεί το select της ερώτησης 4.1
Η ατυχία μου είναι ότι μου τυχαίνει μία τέτοια εξάρτηση τριών ερωτήσεων από μία άλλη πχ (4.1, 4.2, 4.3 από την 4) ενώ γίνεται αλλαγή της σελίδας με το pagination (έχω βάλει να διαβάζει από τη βάση ανά κάποιες ερωτήσεις(κάθε ερώτηση και εγγραφή))και έχω πχ την 4 και την 4.1 ερώτηση στην προηγούμενη σελίδα και τις άλλες δύο στην επόμενη με αποτέλεσμα να μην ξεγκριζάρονται οι άλλες δύο αν επιλέξω ναι στην 4.
Αυτό μου συνέβαινε και σε άλλες εναλλαγές σελίδων (πχ από την 3 στην 4 η από την 6 στην 7 σελίδα) αλλά άλλαξα το πλήθος των εγγραφών που θα διαβάζει από την βάση(δλδ το πλήθος των ερωτήσεων) και τώρα έχω πρόβλημα μόνο σε μία εναλλαγή.

Αυτό που θα ήθελα να ρωτήσω και θα σας ήμουν ευγμώμων αν είχατε τη λύση είναι το εξής:
Θέλω με κάποιο τρόπο να περνάω την τιμή του id που έχει το element της ερώτησης 4, (για να μπορώ να βλέπω τι value έχει επιλεχθεί στην 4 ερώτηση, στην επόμενη σελίδα! ώστε να μπορέσω με getElementById("id").value - που αυτός ο κώδικας θα βρίσκεται στο ίδιο αρχείο πάντα που έχω και την σελιδοποίηση και κάνω όλη τη δουλειά, - να πάρω το value της 4 ώστε να δω αν θα εμφανίσω το element των άλλων δύο ερωτήσεων απενεργοποιημένο(disabled) ή όχι ---- ή αλλιώς με getElementById.disabled που τότε θα ελέγχω αν είναι true για την ερώτηση 4.1 οπότε θα ξέρω να κάνω το ίδιο και στις άλλες δύο.)από την προηγούμενη σελίδα του ίδιου αρχείου (πχ members.php) στην επόμενη. Με λίγα λόγια θέλω να πάρω το id ενός element της ίδιας σελίδας του αρχείου, στην επόμενη σελίδα του αρχείου, ώστε να μπορέσω να χειριστώ το disable των άλλων 2 ερωτήσεων.


Επίσης η ολική φόρμα η οποία και χωρίζεται σε σελίδες είναι της μορφής:
echo "<form action=\"members.php?start=$next\" method =\"post\" >";} // για να πηγαίνουν τα δεδομένα από τη μία σελίδα στην άλλη

ΑΥΤΑ!
Ελπίζω να μην σας ζάλισα αλλά ήθελα να σας τα πω όσο πιο αναλυτικά μπορούσα για να καταλάβετε τι θέλω γιατί καίγομαι και δεν έχω πολύ χρόνο! :(

Άβαταρ μέλους
mrpc
WebDev Moderator
Δημοσιεύσεις: 3393
Εγγραφή: 03 Μάιος 2000 03:00
Τοποθεσία: Εξάρχεια
Επικοινωνία:

πρόβλημα με εξαρτήσεις και disables φόρμας

Δημοσίευση από mrpc » 20 Οκτ 2011 04:44

Δεν είμαι σίγουρος αν έχω καταλάβει καλά την ερώτηση σου, αλλά από όσα κατάλαβα:
Την τιμή δεν θα την πάρεις βάση του id, αλλά βάση του name. Τιμή μέσω id παίρνεις στη javascript, στην PHP παίρνεις μέσω του name γιατί με αυτό στέλνονται τα δεδομένα στις φόρμες.
Π.χ. αν μια ερώτηση έχει τη μορφή

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

<input type="checkbox" name="question1" value="1" id="question1" />
εσύ παίρνεις την τιμή μέσω της $_POST['question1'].
Έτσι π.χ. στην επόμενη ερώτηση, στην επόμενη σελίδα, κάνεις κάτι σαν:

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

if &#40;isset&#40;$_POST&#91;'question1'&#93;&#41; && $_POST&#91;'question1'&#93; == "1"&#41;&#123;
     echo '<input type="checkbox" name="question2" id="question2" value="1" />';
&#125;

butterfly88
Δημοσιεύσεις: 6
Εγγραφή: 19 Οκτ 2011 21:43

πρόβλημα με εξαρτήσεις και disables φόρμας

Δημοσίευση από butterfly88 » 20 Οκτ 2011 15:58

mrpc, σ' ευχαριστώ πολύ που προσφέρθηκες να με βοηθήσεις...
το έκανα αυτό που λες, δλδ έβαλα αν έχει οριστεί η question1 η οποία είναι η ερώτηση που εξαρτά τις άλλες τρεις και αν αυτή υπάρχει (isset) τότε βλέπω αν είναι 1 και τότε εμφανίζω αυτή που εξαρτάται από αυτή χωρίς disabled. Αλλά δεν μου λειτουργεί. Συγκεκριμένα

if (isset($_POST['question1']) && $_POST['question1'] == "1"){
//echo '<input type="checkbox" name="question2" id="question2" value="1" />';

$fname ='text'.$f1;

echo "<textarea rows='1' cols='45' name='$fname' value='$fname' wrap=\"physical\"></textarea><br /> ";
}else{
$fname ='text'.$f1;

echo "<textarea disabled id=\"s832\" rows='1' cols='45' name='$fname' value='$fname' wrap=\"physical\"></textarea><br /> ";

}

αφού όπως είπες έβαλα πιο πριν το εξής:
$fname ='choice'.$f1;
echo "<select id=\"sel83\" name=\"question1\">";
echo "<option value=\"0\">Ναι / Όχι / ΔΞ</option>";
echo "<option value=\"1\">Ναι</option>";
echo "<option value=\"2\">Όχι</option>";
echo "<option value=\"3\">ΔΞ</option>";
echo "</select>";
Να σε ρωτήσω κάτι αν έχω καταλάβει καλά...
Το "1" που μου είπες να βάλω αναπαριστά το value της πρώτης ερώτησης? Δλδ στο παράδειγμά μου, επειδή αν απαντήσει ναι ο χρήστης παίρνει το value την τιμή 1, άρα λέω ότι αν απαντήσει ναι εμφανίζω την επόμενη ξεγκριζαρισμένη και αν κάτι άλλο την εμφανίζω disabled?? Αυτή ήταν η σκέψη σου?? Γτ εγώ αυτό κατάλαβα και υλοποίησα αλλά δεν λειτουργεί.... :( αν πατήσω ναι στην πρώτη ερώτηση και πάω στην επόμενη σελίδα στον browser του ίδιου αρχείου members.php η επόμενη μου εμφανίζεται disabled και όχι ενεργή γιατί ίσως δεν βλέπει πουθενά την question1????

Αυτό που μου είπες είναι όντως για το ίδιο αρχείο?? Δλδ μπορώ να κάνω αυτην την if isset για ένα name ενός προηγούμενου element και να δω αν είναι 1 η value του??
Συγνώμη αν σε ζάλισα... αλλά είμαι σίγουρη ότι ξέρεις να μου πεις απλά ίσως δεν τα είπα τόσο ξεκάθαρα..
νομίζω τώρα τα είπα πιο αναλυτικά..

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

Άβαταρ μέλους
mrpc
WebDev Moderator
Δημοσιεύσεις: 3393
Εγγραφή: 03 Μάιος 2000 03:00
Τοποθεσία: Εξάρχεια
Επικοινωνία:

πρόβλημα με εξαρτήσεις και disables φόρμας

Δημοσίευση από mrpc » 20 Οκτ 2011 16:13

αυτό δουλεύει μόνο αν το pagination που κάνεις λειτουργεί ως υποβολή φόρμας. Δηλαδή με τη λογική αυτού που έγραψες πριν:
echo "<form action=\"members.php?start=$next\" method =\"post\" >";} // για να πηγαίνουν τα δεδομένα από τη μία σελίδα στην άλλη
Το 1 που είπα, ναι, είναι το value της πρώτης ερώτησης. Δεν ξέρω γιατί δε σου δουλεύει όμως, καθώς δεν έχω δει κάπου όλο τον κώδικα.

butterfly88
Δημοσιεύσεις: 6
Εγγραφή: 19 Οκτ 2011 21:43

πρόβλημα με εξαρτήσεις και disables φόρμας

Δημοσίευση από butterfly88 » 20 Οκτ 2011 16:16

nai ws upovolh formas to exw... ola einai MIA forma(ola ginontai mesa s auth) kai einai sto idio arxeio opws les me pagination...

butterfly88
Δημοσιεύσεις: 6
Εγγραφή: 19 Οκτ 2011 21:43

πρόβλημα με εξαρτήσεις και disables φόρμας

Δημοσίευση από butterfly88 » 20 Οκτ 2011 16:21

Ουπς! Συγγνώμη για τα greekglish, από κεκτημένη ταχύτητα το έκανα!!
Δεν μπορώ να σου στείλω όλον τον κώδικα γτ είναι πάρα πολύ μεγάλος...
Αλλά δεν αλλάζει κάτι... Το βασικό είναι ότι είναι σε ένα αρχείο με pagination και έγραψα ακριβώς αυτό που μου είπες...
αλλά από ότι κατάλαβα για να αμφανίζει την επόμενη ερώτηση γκριζαρισμένη και όχι ενεργή, μάλλον δεν βλέπει το question1 :(
αλλά δεν ξέρω γιατί... :(

Άβαταρ μέλους
mrpc
WebDev Moderator
Δημοσιεύσεις: 3393
Εγγραφή: 03 Μάιος 2000 03:00
Τοποθεσία: Εξάρχεια
Επικοινωνία:

πρόβλημα με εξαρτήσεις και disables φόρμας

Δημοσίευση από mrpc » 20 Οκτ 2011 16:23

Δεν ξέρω τι μπορεί να συμβαίνει. Δοκίμασε ένα var_dump($_POST) να δεις αν έρχονται τα δεδομένα όπως τα θέλεις.

butterfly88
Δημοσιεύσεις: 6
Εγγραφή: 19 Οκτ 2011 21:43

πρόβλημα με εξαρτήσεις και disables φόρμας

Δημοσίευση από butterfly88 » 20 Οκτ 2011 16:31

Μου βγάζει ένα array(0) { }
και εγώ από array έχω μόνο αυτό
if(!$_SESSION['fields']) $_SESSION['fields']= array();
το οποίο το ορίζω πριν τη φόρμα (πριν δλδ το echo "<form action=\"members.php?start=$next\" method =\"post\" >"; )

έβαλα απλά το var_dump($_POST);

butterfly88
Δημοσιεύσεις: 6
Εγγραφή: 19 Οκτ 2011 21:43

πρόβλημα με εξαρτήσεις και disables φόρμας

Δημοσίευση από butterfly88 » 20 Οκτ 2011 16:37

OMG!!!!!!!!!!!!!!!!!!!!!!
Μου λειτούύύργησε!!!!! Έκανα εγώ μία βλακεία και δεν πάτησα το κουμπί που σε πάει με υποβολή φόρμας παρακάτω!!! Πάτησα άλλο απλό κουμπί καθοδήγησης!!!!
Πωωω πωωωω σ' ευχαριστώ πάαααρα πολύ!!!! :D :D :D :D

Άβαταρ μέλους
mrpc
WebDev Moderator
Δημοσιεύσεις: 3393
Εγγραφή: 03 Μάιος 2000 03:00
Τοποθεσία: Εξάρχεια
Επικοινωνία:

πρόβλημα με εξαρτήσεις και disables φόρμας

Δημοσίευση από mrpc » 20 Οκτ 2011 16:40

:) np
Keep coding!

Απάντηση

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

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

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