2 methoden inkorten tot 1 methode

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Engin C

Engin C

21/03/2012 20:00:51
Quote Anchor link
Hoi allemaal,

Ik heb 2 methoden die ik graag zou inkorten tot 1 methode aangezien ik het grotendeels overbodig vind. Nu weet ik alleen niet hoe ik het kan doen, zonder dat de functionaliteit te slopen.

Het gaat om het volgende:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
function toggle(onoff)
{
    var e = document.getElementById('proprty_end_date');
  
    if(!onoff)
    {
        e.style.display = 'none';
        property_end_date_label.style.display="none";
    
    }
    else
    {
        e.style.display = 'block';
        property_end_date_label.style.display="block";
    }
}
 
function toggle2(onoff)
{
    var e = document.getElementById('proprty_viewing_date');
  
    if(!onoff)
    {
        e.style.display = 'none';
        proprty_viewing_date_label.style.display="none";
    
    }
    else
    {
        e.style.display = 'block';
        proprty_viewing_date_label.style.display="block";
    }
}

[/CODE]
 
PHP hulp

PHP hulp

25/11/2024 08:04:30
 
Reshad F

Reshad F

21/03/2012 20:08:48
Quote Anchor link
ook hier kan je jquery voor gebruiken.
 
Ozzie PHP

Ozzie PHP

21/03/2012 20:47:12
Quote Anchor link
Reshadd, iets meer informatie mag toch wel? Hier schiet de topicstarter weinig mee op.

@topicstarter:
hint: geef de waardes die verschillen mee als parameters aan de functie
 
Engin C

Engin C

21/03/2012 20:54:48
Quote Anchor link
Ja daar dacht ik ook aan maar de "proprty_viewing_date_label" kan ik moeilijk in een variabele zetten denk ik. Aangezien dat een ID van een label is.
 
Nick Dijkstra

Nick Dijkstra

21/03/2012 21:31:32
Quote Anchor link
Volgens mij kan het zo?
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
function toggle(onoff,elementid)
{
    var e = document.getElementById(elementid);
    var label = window[elementid+'_label'];
    if(!onoff)
    {
        e.style.display = 'none';
        label.style.display="none";
    
    }
    else
    {
        e.style.display = 'block';
        label.style.display="block";
    }
}

<a href="#" onclick="toggle(false,'test1');">Hide</a><a href="#" onclick="toggle(true,'test1');">Show</a>

<span id="test1_label">label</span>
<div id="test1">test</div>


Zo werkt ie. Heb het getest.
Gewijzigd op 21/03/2012 21:43:09 door Nick Dijkstra
 
Engin C

Engin C

21/03/2012 23:05:27
Quote Anchor link
bij mij werkt het zo niet :S
 
Nick Dijkstra

Nick Dijkstra

21/03/2012 23:09:04
Quote Anchor link
Laat eens je code zien dan.
 
Engin C

Engin C

21/03/2012 23:23:12
Quote Anchor link
Nick Dijkstra op 21/03/2012 23:09:04:
Laat eens je code zien dan.


Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
Dit is de radiobutton field die het veld proprty_end_date moet regelen (hide/show):
div class="form_row clearfix">
                   <label><?php _e(RENTAL_PERIOD_TEXT);?> <span>*</span>  </label>
                <span class="fl user_define"> <input name="proprty_rental_period" onClick='toggle(0,'proprty_end_date')' type="radio" <?php if($proprty_rental_period=='Indefinite Period' || $proprty_rental_period == null){echo 'checked="checked"';}?> value="Indefinite Period" /> <?php _e(PERIOD_INDEFINITE_TEXT);?></span>
                <span class="fl user_define"> <input name="proprty_rental_period" onClick='toggle(1,'proprty_end_date')' type="radio" <?php if($proprty_rental_period=='Temporary'){echo 'checked="checked"';}?> value="Temporary" /> <?php _e(PERIOD_TEMPORARY_TEXT);?> </span>
             </div>

Dit is de radiobutton field die het veld+label proprty_viewing_date moet regelen (hide/show):

<div class="form_row clearfix">
                 <label><?php _e(VIEWING_TEXT);?> <span>*</span>  </label>
                 
                    <span class="fl user_define"> <input name="proprty_viewing" onClick='toggle(0,'proprty_viewing_date')' type="radio" <?php if($proprty_viewing=='Yes'){echo 'checked="checked"';}?> value="Yes" /> <?php _e('Yes');?> </span>
                  <span class="fl user_define"> <input name="proprty_viewing" onClick='toggle(1,'proprty_viewing_date')' type="radio" <?php if($proprty_viewing=='No' || $proprty_viewing =='' ){echo 'checked="checked"';}?> value="No" /> <?php _e('No');?></span>
             </div>

[size=xsmall][i]Toevoeging op 21/03/2012 23:26:51:[/i][/size]


En dit zijn de velden die dus worden gehide en geshowt:

<div class="form_row clearfix">
             <label id="property_end_date_label" style='display:none;'><?php _e(RENTAL_AVAILABLE_END_TEXT);?> <span>*</span> </label>
                 <input type="text" name="proprty_end_date" id="proprty_end_date" class="textfield" style='display:none;'value="<?php echo esc_attr(stripslashes($proprty_end_date)); ?>" />
              </div>


<div class="form_row clearfix">
             <label id="proprty_viewing_date_label" style='display:none;'><?php _e(VIEWING_DATE_TEXT);?> <span>*</span> </label>
                 <input type="text" name="proprty_viewing_date" id="proprty_viewing_date" class="textfield" style='display:none;'value="<?php echo esc_attr(stripslashes($property_viewing_date)); ?>" />
              </div>
 
Nick Dijkstra

Nick Dijkstra

21/03/2012 23:28:40
Quote Anchor link
ipv dit: onClick='toggle(0,'proprty_viewing_date')'

probeer eens dit: onClick="toggle(false,'proprty_viewing_date')"

dus dubbele quotes en 0 = false en 1 = true
 
Engin C

Engin C

21/03/2012 23:36:08
Quote Anchor link
Het werkt nu wel, maar op een of andere manier wordt de label van property_end_date_label niet weergeven :S
 
Nick Dijkstra

Nick Dijkstra

21/03/2012 23:38:28
Quote Anchor link
Laat je JS code eens zien
 
Engin C

Engin C

21/03/2012 23:39:29
Quote Anchor link
function toggle(onoff,elementid)
{
var e = document.getElementById(elementid);
var label = window[elementid+'_label'];
if(!onoff)
{
e.style.display = "none";
label.style.display="none";

}
else
{
e.style.display = "block";
label.style.display="block";
}
}
 
Nick Dijkstra

Nick Dijkstra

21/03/2012 23:47:04
Quote Anchor link
<label id="property_end_date_label"

<label id="proprty_viewing_date_label"

vergelijk deze eens
 
Engin C

Engin C

21/03/2012 23:48:15
Quote Anchor link
OK IK HEB DE FOUT GEVONDEN!
Ik had property_end_date_label maar het moest zijn proprty_end_date_label.

Erg bedankt voor je hulp! Echt geniaal zijn jullie!
Mvg,
Engin

Toevoeging op 22/03/2012 14:14:47:

Nu zat ik op school(firefox) de pagina te bekijken en zag ik dat de labels niet verschijnen wanneer ik op de radio button druk terwijl het in google chrome wel werkt. Ik zou dit graag willen oplossen, enig idee waar het aan kan liggen?

Mvg,
Engin
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.