Ervaringen met Dataservices Keuzelijsten


In een ander draadje is gesignaleerd dat de services rondom keuzelijsten niet altijd het gewenste resultaat geven. Daarom lijkt het mij goed om hier een apart draadje over te openen,


Het eerste experiment dat ik gedaan heb, was met keuzelijst-leeftijdscategorieen. Op de Sportlink-pagina Javascript-library leverde die in de testrun geen gegevens op.


Ook mijn eigen code (zie onder) leverde geen records op. 


Gek genoeg veranderde dat toen ik op dezelfde WP-pagina daarna een andere keuze-lijst (competitiesoorten), die in de testrun wel records opleverde, aanriep. Toen leverde de leeftijdscategorieen ineens wel data op, en de tweede reeks (competitiesoorten) niets. Erg vreemd. (voor code:zie verder). 


<?php

 

  // ========================================= SportLink Keuzelijst Leeftijdscategorieen ==================================================

 

  echo '<h1>SportLink Keuzelijst Leeftijdscategorieen</h1>';

  $url='https://data.sportlink.com/keuzelijst-leeftijdscategorieen?client_id=hC9BDSJvGF';

 

  $ch = curl_init();

  curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);

  curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

  curl_setopt($ch, CURLOPT_URL,$url);

  $result=curl_exec($ch);

  curl_close($ch);

 

  $programma_output = json_decode($result, true);

  $aantalrecords = count($programma_output);

  echo 'Aantal records = ' . $aantalrecords . '<br/>';

 

  echo '<table width="100%" border="0" cellspacing="0" cellpadding="2">';

  echo '<tr><strong>';

    echo '<td class="blue"><strong>Waarde</strong></td>';

    echo '<td class="blue"><strong>Omschrijving</strong></td>';

  echo '</strong></tr>';

 

  for ($i = 0; $i < $aantalrecords; $i++)

  {

    $class = "odd";

    $color = "blue";

 

 

    echo '<tr class="' . $class . '">';

      echo '<td class="'.$color.'">' . $programma_output[$i]["waarde"] . '</td>';

      echo '<td class="'.$color.'">' . $programma_output[$i]["omschrijving"] . '</td>';

    echo '</tr>';

 

  }

  echo '</table>';

  //var_dump($programma_output);

?>


Zie hier de code om de waarden van 2 keuzelijsten te laten zien. Gek genoeg krijg ik bij de eerste nu wel data en bij de tweede niet. Separaat zal ik de output posten:


<?php

 

  // ========================================= SportLink Keuzelijst Leeftijdscategorieen ==================================================

 

  echo '<h1>SportLink Keuzelijst Leeftijdscategorieen</h1>';

  $url='https://data.sportlink.com/keuzelijst-leeftijdscategorieen?client_id=XXXXXX';

 

  $ch = curl_init();

  curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);

  curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

  curl_setopt($ch, CURLOPT_URL,$url);

  $result=curl_exec($ch);

  curl_close($ch);

 

  $programma_output = json_decode($result, true);

  $aantalrecords = count($programma_output);

  echo 'Aantal records = ' . $aantalrecords . '<br/>';

 

  echo '<table width="100%" border="0" cellspacing="0" cellpadding="2">';

  echo '<tr><strong>';

    echo '<td class="blue"><strong>Waarde</strong></td>';

    echo '<td class="blue"><strong>Omschrijving</strong></td>';

  echo '</strong></tr>';

 

  for ($i = 0; $i < $aantalrecords; $i++)

  {

    $class = "odd";

    $color = "blue";

 

 

    echo '<tr class="' . $class . '">';

      echo '<td class="'.$color.'">' . $programma_output[$i]["waarde"] . '</td>';

      echo '<td class="'.$color.'">' . $programma_output[$i]["omschrijving"] . '</td>';

    echo '</tr>';

 

  }

  echo '</table>';

  //var_dump($programma_output);

 

  // ========================================= SportLink Keuzelijst Competitiesoorten ==================================================

 

  echo '<h1>SportLink Keuzelijst Competitiesoorten</h1>';

  $url='https://data.sportlink.com/keuzelijst-competitiesoorten?client_id=XXXXXX';

 

  $ch = curl_init();

  curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);

  curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

  curl_setopt($ch, CURLOPT_URL,$url);

  $result=curl_exec($ch);

  curl_close($ch);

 

  $programma_output = json_decode($result, true);

  $aantalrecords = count($programma_output);

  echo 'Aantal records = ' . $aantalrecords . '<br/>';

 

  echo '<table width="100%" border="0" cellspacing="0" cellpadding="2">';

  echo '<tr><strong>';

    echo '<td class="blue"><strong>Waarde</strong></td>';

    echo '<td class="blue"><strong>Omschrijving</strong></td>';

  echo '</strong></tr>';

 

  for ($i = 0; $i < $aantalrecords; $i++)

  {

    $class = "odd";

    $color = "blue";

 

 

    echo '<tr class="' . $class . '">';

      echo '<td class="'.$color.'">' . $programma_output[$i]["waarde"] . '</td>';

      echo '<td class="'.$color.'">' . $programma_output[$i]["omschrijving"] . '</td>';

    echo '</tr>';

 

  }

  echo '</table>';

  //var_dump($programma_output);

 

  echo 'Klaar';

 

 

?>

SportLink Keuzelijst Leeftijdscategorieen

Aantal records = 4

Waarde Omschrijving
alles Alles
senioren Senioren
junioren Junioren
pupillen Pupillen

SportLink Keuzelijst Competitiesoorten

Aantal records = 0

Waarde Omschrijving

Klaar

Het wordt steeds gekker. Als ik de pagina refresh krijg ik telkens andere resultaten. Ik heb nu al de volgende varianten gezien:

  1. Zoals boven: 4 leeftijdscategorieen, o competitiesoorten
  2. Of: 0 leeftijdscategorieen, o competitiesoorten
  3. En: 0 leeftijdscategorieen, 5 competitiesoorten
  4. En nu ook de goede variant: 4 leeftijdscategorieen, 5 competitiesoorten

Maar nooit 2 keer achter elkaar hetzelfde resultaat. Vreemd!

Zie hier. Geen verandering in code, enkel een refresh van de pagina:


SportLink Keuzelijst Leeftijdscategorieen

Aantal records = 4

Waarde Omschrijving
alles Alles
senioren Senioren
junioren Junioren
pupillen Pupillen

SportLink Keuzelijst Competitiesoorten

Aantal records = 5

Waarde Omschrijving
alles Alles
beker Beker
regulier Regulier
regulier_nacompetitie Regulier + nacompetitie
nacompetitie Nacompetitie

Klaar

En nu:


SportLink Keuzelijst Leeftijdscategorieen

Aantal records = 0

Waarde Omschrijving

SportLink Keuzelijst Competitiesoorten

Aantal records = 0

Waarde Omschrijving

Klaar

Tot mijn grote verbazing doet-ie het nou consequent goed! @Remko Hayes, je zou mijn code dus eens kunnen proberen ...

Hallo Martin,


Ik had je bericht niet eerder gezien omdat ik niet geabonneerd was op dit draadje. Ik zou je code heel graag proberen maar ik zou niet weten hoe ik deze combineer met het programma.

Hoe moet ik dan een code voor een keuzelijst voor periodestanden toevoegen? kan iemand dit mij vertellen

Inloggen of registreren om een reactie te posten