if else in javascript
Bij onderstaande if else werkt alleen het if gedeelte.
Als ik het if gedeelte verwijder werkt het else gedeelte wel.
Alle variabelen zijn aanwezig, is mijn if else fout??
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<script>
$(function() {
var date = new Date();
$( "#with-altField" ).multiDatesPicker({
addDates: [
<?php
if(isset ($_POST['radiobutton_value'])){
$value = "'" . str_replace(array("'", ","), array("\\'", "','"), $dates) . "'";
echo $value;
}
else{
$string = "'" . str_replace(array("'", ","), array("\\'", "','"), $_POST['dates']) . "'";
echo $string;
}?>
],
altField: '#altField'
});
});
</script>
$(function() {
var date = new Date();
$( "#with-altField" ).multiDatesPicker({
addDates: [
<?php
if(isset ($_POST['radiobutton_value'])){
$value = "'" . str_replace(array("'", ","), array("\\'", "','"), $dates) . "'";
echo $value;
}
else{
$string = "'" . str_replace(array("'", ","), array("\\'", "','"), $_POST['dates']) . "'";
echo $string;
}?>
],
altField: '#altField'
});
});
</script>
En wat zou het moeten doen volgens jou(w verwachting)? Bij een if/else is het de bedoeling dat maar één van de twee werkt, anders zou je er geen if/else omheen zetten.
gebruik dan !empty() ...
Zo niet dan moet hij $string echo-en.
Edit:
@John: Dat was een goede gok. ;)
Wat doe je daar precies?
Wat doe je daar precies?
Gewijzigd op 10/09/2012 22:01:22 door N K
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
<?php
$true = true; // A
$zero = 0; // B
$null = null; // C
$one = 1; // D
$zero_string = '0'; // E
$one_string = '1'; // F
$anders = 'anders'; // G
if (isset($true)) print("A 1<br />\n");
if (!empty($true)) print("A 2<br />\n");
if ($true) print("A 3<br />\n");
if ($true != '') print("A 4<br />\n");
if (isset($zero)) print("B 1<br />\n");
if (!empty($zero)) print("B 2<br />\n");
if ($zero) print("B 3<br />\n");
if ($zero != '') print("B 4<br />\n");
if (isset($null)) print("C 1<br />\n");
if (!empty($null)) print("C 2<br />\n");
if ($null) print("C 3<br />\n");
if ($null != '') print("C 4<br />\n");
if (isset($one)) print("D 1<br />\n");
if (!empty($one)) print("D 2<br />\n");
if ($one) print("D 3<br />\n");
if ($one != '') print("D 4<br />\n");
if (isset($zero_string)) print("E 1<br />\n");
if (!empty($zero_string)) print("E 2<br />\n");
if ($zero_string) print("E 3<br />\n");
if ($zero_string != '') print("E 4<br />\n");
if (isset($one_string)) print("F 1<br />\n");
if (!empty($one_string)) print("F 2<br />\n");
if ($one_string) print("F 3<br />\n");
if ($one_string != '') print("F 4<br />\n");
if (isset($anders)) print("G 1<br />\n");
if (!empty($anders)) print("G 2<br />\n");
if ($anders) print("G 3<br />\n");
if ($anders != '') print("G 4<br />\n");
?>
$true = true; // A
$zero = 0; // B
$null = null; // C
$one = 1; // D
$zero_string = '0'; // E
$one_string = '1'; // F
$anders = 'anders'; // G
if (isset($true)) print("A 1<br />\n");
if (!empty($true)) print("A 2<br />\n");
if ($true) print("A 3<br />\n");
if ($true != '') print("A 4<br />\n");
if (isset($zero)) print("B 1<br />\n");
if (!empty($zero)) print("B 2<br />\n");
if ($zero) print("B 3<br />\n");
if ($zero != '') print("B 4<br />\n");
if (isset($null)) print("C 1<br />\n");
if (!empty($null)) print("C 2<br />\n");
if ($null) print("C 3<br />\n");
if ($null != '') print("C 4<br />\n");
if (isset($one)) print("D 1<br />\n");
if (!empty($one)) print("D 2<br />\n");
if ($one) print("D 3<br />\n");
if ($one != '') print("D 4<br />\n");
if (isset($zero_string)) print("E 1<br />\n");
if (!empty($zero_string)) print("E 2<br />\n");
if ($zero_string) print("E 3<br />\n");
if ($zero_string != '') print("E 4<br />\n");
if (isset($one_string)) print("F 1<br />\n");
if (!empty($one_string)) print("F 2<br />\n");
if ($one_string) print("F 3<br />\n");
if ($one_string != '') print("F 4<br />\n");
if (isset($anders)) print("G 1<br />\n");
if (!empty($anders)) print("G 2<br />\n");
if ($anders) print("G 3<br />\n");
if ($anders != '') print("G 4<br />\n");
?>
A 1
A 2
A 3
A 4
B 1
D 1
D 2
D 3
D 4
E 1
E 4
F 1
F 2
F 3
F 4
G 1
G 2
G 3
G 4
Gewijzigd op 10/09/2012 22:15:05 door Flip --
Filp, het is misschien beter een uitleg te geven. Tevens ook een uitleg dat je empty (bijna) nooit moet gebruiken, is even fout als de methode van John.
geef jij maar eens een uitleg dan
Deze functie controlleerd of de variabele ingesteld is (met andere woorden is gezet of op z'n engels IsSet). Voorbeeldje:
Code (php)
Als een variabele ingesteld is hoeft het nog niet per se een waarde te hebben, bijv:
Dus we moeten nog iets hebben om te checken of de variabele wel een waarde heeft. De 3 aangedragen opties:
1. empty
Empty (engels voor leeg) kijkt of een variabele leeg is. bijv:
Als we het omgekeerde willen, de code uitvoeren als de variabele niet leeg is. Gebruiken we !empty() (spreek je uit als not empty => niet leeg).
Helaas geeft empty niet alleen true terug als de variabele leeg ('') is. Maar met alle zogeheten falsey waardes. Hieronder vallen 0, '0', false, null, array() en array(0) (en array(null)). Je merkt het al, zodra we de waarde 0 invullen, wat gewoon echt een geldige waarde is voor een veld, zal de code ook uitgevoerd worden:
2. if ($foo)
Dit is een shorthand if condition, de condition is dat hele stuk tussen (). Hiermee zeggen we dat de code uitgevoerd wordt zodra $foo een truthy, iets dat als true gezien wordt zoals true, 'iets met een waarde die niet leeg is', 1 (elk cijfer dat niet gelijk is aan 0), array(1), enz.
Omgekeerd (!$foo) kan natuurlijk ook, dan check je of het een falsey waarde is. Je hebt hier dus weer te maken met hetzelfde probleem als met de empty functie.
3. '' != $foo
En dit is dan de oplossing. Deze kijkt of de waarde van $foo niet gelijk is aan een lege string. Hierbij worden dus dingen als '0' niet meegenomen: precies wat we willen.
Waarom niet zo?
Zelf denk ik dat hij wat langzamer is, omdat je gebruik maakt van een functie.
Bedankt voor alle info!