προβλημα με ternary operator

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

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

Απάντηση
Serghio
Δημοσιεύσεις: 451
Εγγραφή: 08 Φεβ 2011 19:20
Τοποθεσία: Περιστέρι

προβλημα με ternary operator

Δημοσίευση από Serghio » 24 Οκτ 2013 14:55

Προσπαθώ να φτιάξω ένα ternary operator όπου θα τσεκάρει αν o χρηστης έχει συμπληρώσει url στην βάση και αν ναι να συμπληρώνεται το αντίστοιχο data attribute στο input element όπου πρέπει να συμπληρώσει το url.
To ternary operator λοιπόν είνοι αυτο:

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

  data-originalvalue="<?php echo $address&#91;'url'&#93;==''"?""&#58;$address&#91;'url'&#93;; ?>"
Kανονικά λοιπόν αν δεν υπάρχει url στην βάση θα πρέπει να έχουμε αυτό στην html:
data-originalvalue=""...αντι αυτού όμως, έχουμε αυτό:

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

data-originalvalue
(σκέτο δηλαδή)και η ερώτηση είναι γιατί.

alou
Script Master
Δημοσιεύσεις: 1374
Εγγραφή: 24 Αύγ 2007 19:52
Επικοινωνία:

προβλημα με ternary operator

Δημοσίευση από alou » 24 Οκτ 2013 15:57

Είναι μια χαρά valid html και έτσι (έχει το σκοπό του), θα ήταν πιο σωστό όμως να το έχεις ως εξής:

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

  <?php echo $address&#91;'url'&#93;== '' ? '' &#58; ' data-originalvalue="'.$address&#91;'url'&#93;.'"'; ?>
Έτσι, ο έλεγχος if ($(element).data('originalvalue')) θα είναι false αν δεν υπάρχει τιμή στο $address['url'], αν υπάρχει το data-originalvalue έστω και χωρίς τιμή θα επιστρέφει true.

Serghio
Δημοσιεύσεις: 451
Εγγραφή: 08 Φεβ 2011 19:20
Τοποθεσία: Περιστέρι

προβλημα με ternary operator

Δημοσίευση από Serghio » 24 Οκτ 2013 16:48

alou έγραψε:Είναι μια χαρά valid html και έτσι (έχει το σκοπό του), θα ήταν πιο σωστό όμως να το έχεις ως εξής:

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

  <?php echo $address&#91;'url'&#93;== '' ? '' &#58; ' data-originalvalue="'.$address&#91;'url'&#93;.'"'; ?>
Έτσι, ο έλεγχος if ($(element).data('originalvalue')) θα είναι false αν δεν υπάρχει τιμή στο $address['url'], αν υπάρχει το data-originalvalue έστω και χωρίς τιμή θα επιστρέφει true.
σωστός

Serghio
Δημοσιεύσεις: 451
Εγγραφή: 08 Φεβ 2011 19:20
Τοποθεσία: Περιστέρι

προβλημα με ternary operator

Δημοσίευση από Serghio » 24 Οκτ 2013 18:07

δυστηχώς δεν παίζει και δεν μπορώ να καταλάβω γιατί...παραθέτω τον κώδικα για να αποκλειστεί τουλάχιστον πρόβλημα syntax:

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

 if&#40;&#40;$&#40;'input#wwwaddress'&#41;.data&#40;'originalvalue'&#41;&#41;===false&#41;
                       &#123; alert&#40;'hi'&#41;;//για testing αυτό βέβαια
                   
                       &#125;

alou
Script Master
Δημοσιεύσεις: 1374
Εγγραφή: 24 Αύγ 2007 19:52
Επικοινωνία:

προβλημα με ternary operator

Δημοσίευση από alou » 24 Οκτ 2013 18:40

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

if &#40; !$&#40;'input#wwwaddress'&#41;.data&#40;'originalvalue'&#41; &#41; &#123;
		alert&#40;'not existing'&#41;;
	&#125; else &#123;
		alert&#40; $&#40;'input#wwwaddress'&#41;.data&#40;'originalvalue'&#41; &#41;;	
	&#125;

Serghio
Δημοσιεύσεις: 451
Εγγραφή: 08 Φεβ 2011 19:20
Τοποθεσία: Περιστέρι

προβλημα με ternary operator

Δημοσίευση από Serghio » 24 Οκτ 2013 18:55

alou έγραψε:

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

if &#40; !$&#40;'input#wwwaddress'&#41;.data&#40;'originalvalue'&#41; &#41; &#123;
		alert&#40;'not existing'&#41;;
	&#125; else &#123;
		alert&#40; $&#40;'input#wwwaddress'&#41;.data&#40;'originalvalue'&#41; &#41;;	
	&#125;
yessssssssssss...γιατί άραγε όμως το .....===false δεν λειτουργούσε;

Άβαταρ μέλους
korgr
Honorary Member
Δημοσιεύσεις: 5067
Εγγραφή: 07 Οκτ 2008 18:30
Τοποθεσία: Corinth
Επικοινωνία:

προβλημα με ternary operator

Δημοσίευση από korgr » 24 Οκτ 2013 19:53

γιατί δεν είναι false είναι empty string

alou
Script Master
Δημοσιεύσεις: 1374
Εγγραφή: 24 Αύγ 2007 19:52
Επικοινωνία:

προβλημα με ternary operator

Δημοσίευση από alou » 24 Οκτ 2013 20:20

korgr έγραψε:γιατί δεν είναι false είναι empty string
Αν υπάρχει, το θεωρεί σαν empty string ή σαν την τιμή του αλλά αν δεν υπάρχει είναι undefined. Εξαρτάται πως το χειρίζεσαι.

Δες αυτές τις περιπτώσεις:
1. <input type="hidden" name="wwwaddress" id="wwwaddress" data-originalvalue="asdf" >

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

alert&#40; !$&#40;'input#wwwaddress'&#41;.data&#40;'originalvalue'&#41; &#41;; //false
alert&#40; $&#40;'input#wwwaddress'&#41;.data&#40;'originalvalue'&#41; &#41;; //asdf
2. <input type="hidden" name="wwwaddress" id="wwwaddress" data-originalvalue >

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

alert&#40; !$&#40;'input#wwwaddress'&#41;.data&#40;'originalvalue'&#41; &#41;; //true
alert&#40; $&#40;'input#wwwaddress'&#41;.data&#40;'originalvalue'&#41; &#41;; //empty string
3. <input type="hidden" name="wwwaddress" id="wwwaddress">

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

alert&#40; !$&#40;'input#wwwaddress'&#41;.data&#40;'originalvalue'&#41; &#41;; //true
alert&#40; $&#40;'input#wwwaddress'&#41;.data&#40;'originalvalue'&#41; &#41;; //undefined
Και αν βάλεις στις επιλογές σου και το ερώτημα
$('input#wwwaddress').data('originalvalue').length
που θα εξετάσεις το μέγεθος του string αν υπάρχει το στοιχείο βέβαια, οι επιλογές για να το χειριστείς μεγαλώνουν.

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

<input type="hidden" name="wwwaddress" id="wwwaddress" data-originalvalue="asdf" >
...
alert&#40; $&#40;'input#wwwaddress'&#41;.data&#40;'originalvalue'&#41;.length &#41;; //4

Άβαταρ μέλους
korgr
Honorary Member
Δημοσιεύσεις: 5067
Εγγραφή: 07 Οκτ 2008 18:30
Τοποθεσία: Corinth
Επικοινωνία:

προβλημα με ternary operator

Δημοσίευση από korgr » 24 Οκτ 2013 20:56

alou έγραψε: Αν υπάρχει, το θεωρεί σαν empty string ή σαν την τιμή του αλλά αν δεν υπάρχει είναι undefined. Εξαρτάται πως το χειρίζεσαι.
Δεν απάντησα σε σένα :)
Απάντησα στο

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

$&#40;'input#wwwaddress'&#41;.data&#40;'originalvalue'&#41;&#41;===false

Απάντηση

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

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

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