Avatar billede kischi Novice
07. juli 2014 - 12:54 Der er 12 kommentarer og
1 løsning

Det virker lokalt men ikke online

Hej eksperter,

Jeg er igang med at lave en hjemmeside.

Hvor personer kan tilmelde sig forskellige events.

Lokalt, når man klikker på knappen tilmeld virker det fint.

Men når den er online og jeg klikker på knappen tilmeld kommer der en popup som siger: "no events added"

Jeg har forsøgt at kopiere alle filer over fra lokalt til nettet igen, men det hjalp ikke.
Kan det være i selve wordpress backenden der er nogle indstillinger der skal rettes.

Her er koden som bliver brugt når man klikker på tilmeld.

<td align="right"><a href="#" id="attend"><img src="<?php bloginfo( 'template_directory' ); ?>/img/tilmeld-btn.png" width="106" height="28" border="0" longdesc="#"></a>
                          <?php
                            $login = get_userdata( $user_ID );
                            $custom_data = get_the_custom_data($post_id);
                            $max = $custom_data['max_attendees'];
                            $evs = count($custom_data['dates']);
                           
                           

                           

                           
                            echo '<script type="text/javascript"> var evs = '.$evs.';</script>';
                           
                           
                           
                       
                        ?>
                                   
                          <script type="text/javascript">
                            $(document).ready(function(){
                                $('#attend').on('click', function(ev) {
                                    ev.preventDefault();

                                    if (evs > 0) {
                                        $('#attend-modal').show();
                                       
                                        var T = $(window).height() / 2 - $('#attend-modal').height() / 2 + $(window).scrollTop(),
                                            L = $(window).width() / 2 - $('#attend-modal').width() / 2;
                                   
                                        $('#attend-modal').css('top',T+'px');
                                        $('#attend-modal').css('left',L+'px');
                                    } else {
                                        alert('No events added');
                                    }

                                });
                            });
                          </script>

I kan selv prøve det her: http://www.wearecrunch.dk/fjernsynet/stjaerner-pa-vaeggen/ Og klik på knappen tilmæld.

lokalt viser $evs at den er = 1
men onliner viser den værdien 0.

Er der nogen der ved hvad der kan være galt, hvorfor får den ikke samme værdi.

Det er lavet i wordpress, kan det have noget med wordpress backenden at gøre?

Jeg håber der er nogle af jeg der kan hjælpe med problemet.

På forhånd tak.
Avatar billede jakobdo Ekspert
07. juli 2014 - 13:01 #1
Du sætter evs = 0; og efterfølgende regner du så med evs > 0.
Så den gør det jo korrekt.
Avatar billede jakobdo Ekspert
07. juli 2014 - 13:02 #2
<script type="text/javascript"> var evs = 0;</script>

Hvor kommer $evs fra ?
Avatar billede kischi Novice
07. juli 2014 - 13:34 #3
Hvor sætter jeg evs = 0 det kan jeg da ikke finde noget sted.

Det er mærkeligt, fordi det virker lokalt.

Er det derfor muligt at det er noget i wordpress, der laver rod i det?
Og at det ikke har noget med filerne at gøre.

Eller kender du en metode hvordan jeg kan finde ud af hvor $evs bliver oprettet?

Jeg har prøvet at søge på $evs i mine filer, men jeg finder ikke noget sted hvor jeg skriver $evs = 0.

Hvis jeg manuelt går ind i samme fil som før og skriver:

$evs = count($custom_data['dates']);
$evs ='1';

Så kommer popep'en frem, men man kan ikke se datoen for eventet, og det virker også lokalt.

Jeg håber du forstår hvad jeg mener, og håber du har mulighed for at hjælpe.

Tak
Avatar billede jakobdo Ekspert
07. juli 2014 - 13:36 #4
Prøv at åben din side.
Højreklik og tryk "Vis kildekode" og søg så efter evs

Hvis du bruger wordpress, gør det ikke problemet mindre, da jeg intet kender til wordpress. :o)
Avatar billede kischi Novice
07. juli 2014 - 13:49 #5
Ok, det har jeg gjort, og ja, online siger den at evs = 0.
Men hvis jeg gør det samme lokalt skriver evs = 1

Derfor er det meget mystisk, at der er nogen forskel på den lokalt og online.  :(
Avatar billede jakobdo Ekspert
07. juli 2014 - 13:51 #6
Du må fejlsøge din kode og finde frem til hvor $evs kommer fra.
Det må jo være et sted i din php kode.
Avatar billede kischi Novice
07. juli 2014 - 14:05 #7
Jeg har lavet søgningen på evs i alle filer i mappen, og den finder kun 3 steder hvor evs fremgår:
Men det ser ikke ud til at nogen af stederne er der den kommer fra.

Her er resultatet på søgningen:

/Applications/MAMP/htdocs/fjernsynet/wp-content/plugins/wp-user-frontend/wpuf-dashboard.php:
  172                                      $custom_data = get_the_custom_data($post->ID);
  173                                      $max = $custom_data['max_attendees'];
  174:                                     $evs = count($custom_data['dates']);
  175                                     
  176:                                     echo '<script type="text/javascript"> var evs = '.$evs.';</script>';
  177:                                     if ($evs > 0) {
  178                                  ?>
  179                                  <div id="attend-modal-<?php echo $post->ID;?>" class="forms_all" style="display:none; z-index:100;">

/Applications/MAMP/htdocs/fjernsynet/wp-content/themes/fjernsynet/header.php:
  200      $custom_data = get_the_custom_data($post_id);
  201      $max = $custom_data['max_attendees'];
  202:     $evs = count($custom_data['dates']);
  203      $d = $_REQUEST["date"];
  204      $name = $_REQUEST["name"];
  ...
  208      $att = $custom_data['dates'][$d]['attended'];
  209 
  210:     if ($evs > 0) {
  211         
  212         

/Applications/MAMP/htdocs/fjernsynet/wp-content/themes/fjernsynet/single.php:
  77                              $custom_data = get_the_custom_data($post_id);
  78                              $max = $custom_data['max_attendees'];
  79:                             $evs = count($custom_data['dates']);
  80                             
  81                             
  ..
  84 
  85                             
  86:                             echo '<script type="text/javascript"> var evs = '.$evs.';</script>';
Avatar billede jakobdo Ekspert
07. juli 2014 - 14:12 #8
Det er da præcist hvor evs kommer fra. :o)

$custom_data = get_the_custom_data($post->ID);
$evs = count($custom_data['dates']);

Så den laver noget hokus pokus der og sætter evs ud fra det.
Avatar billede kischi Novice
07. juli 2014 - 22:35 #9
Nåå ok, troede også det var det, men havde også den med i første post jeg skrev her, det var derfor jeg pludselig blev i tvivl.

Men ok så langt så godt.

Så er spørgsmålet jo bare, hvor får den værdien 0 fra?
Fordi her, der skriver jeg da ikke evs = 0
Avatar billede jakobdo Ekspert
08. juli 2014 - 08:28 #10
Du må grave lidt i funktionen get_the_custom_data() og hvad der ellers sker under motoren.
Avatar billede kischi Novice
08. juli 2014 - 11:34 #11
Ok, jeg fandt nu hvor funktionen get_the_custom_data kommer fra.
Den kommer fra en include mappe, og kodestumpen ser sådan ud:

function get_the_custom_data( $id = 0 ) {
    $post = get_post( $id );
    return ( json_decode($post->custom_data, true) );
}

Jeg prøvede at ændre 0 til 1, men det hjalp ikke.

Ved du om der er noget jeg kan gøre med denne kode?

Tak
Avatar billede jakobdo Ekspert
08. juli 2014 - 12:53 #12
Der er jo tydeligvis noget kode som har en mening.
Hvorfor den er 1 og 0 lokalt / hos din udbyder, må du eller udvikler forklare. :o)
Avatar billede kischi Novice
10. juli 2014 - 16:35 #13
Så virker det endelig.
Problemet var at der var en af felterne som ikke blev taget med op i datebasen.

Jeg skulle blot slette et af parametrene i filen hvor alt dataen bliver lagt op.

Men ellers tusind tak for hjælpen.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester