Avatar billede Morten Professor
25. november 2019 - 14:31 Der er 4 kommentarer og
1 løsning

Hent function fra anden file til at input af variable for en foreach

Hej Eksperter

Jeg har et problem med at hente min function i anden php fil.
Jeg prøver at hente en variabel fra en function.
Men kan simpelhen ikke forsøger at gøre min kode mere dynamisk så jeg bare skal hente min function og tage den variabel i en foreach.

Her er koderne og fil.:
<?php
require_once(plugins_url('syddanske-kalender-opslag/functions/show_data.php'));
function calender_show_data_and_formel() {
Har prøvet dette også: show_calender_data();
  foreach ($getData as $data): ?>
<form class="form_container" action="" method="post">
  <label for="form_label">Overskrift</label>
    <input type="text" name="calender_headline" value="<?php echo $data->calender_headline; ?>">
      <label for="form_label">Skriv teksten her:</label>
        <div>
          <?php
          $text = $data->$calender->text;
            wp_editor( $text, 'calender_text', array(
                'wpautop'      => true,
                'media_buttons' => true,
                'textarea_rows' => 1,
            ) );?>
        </div>
        <label for="form_label">Dato:</label>
          <input type="text" class="date_picker" name="calender_date" value="<?php echo $data->calender_date; ?>">
            <input type="hidden" name="id" value="<?php echo $data->id; ?>">
              <input type="submit" name="submit_data" value="Tilføj opslag">
</form>
<?php endforeach; ?>
<?php
}

fil show_data.php :
function show_calender_data() {
  global $wpdb;
      $table_name = $wpdb->prefix . "calender";
        $getData = $wpdb->get_results(
                                      "
                                      SELECT *
                                      FROM $table_name
                                      " );
}

Med venlig hilsen
Morten
Avatar billede Morten Professor
25. november 2019 - 15:24 #1
den siger Warning: Invalid argument supplied for foreach()
Avatar billede nemlig Professor
25. november 2019 - 16:26 #2
Her er lidt hjælp:

1. Din foreach sætning skal slutte med "{"
foreach ($getData as $data) {

2. Du kan udelade denne linje. Ved ikke om det kan fungere med "endforeach", men er ikke nødvendigt.
<?php endforeach; ?>

3. Du kalder din function i linje 3.
Du skal udelade "function" når du kalder en function.
calender_show_data_and_formel()

Navnet på den function, du kalder, skal være det samme som din function.
Men jeg kan ikke gennemskue din function, så her må andre komme dig til hjælp.
Avatar billede nemlig Professor
25. november 2019 - 16:27 #3
og tilføjelse til punkt 3.
Husk semikolon til sidst
calender_show_data_and_formel();
Avatar billede Morten Professor
25. november 2019 - 16:59 #4
Tænker jeg hellere må skrive denne kode så der er noget mere i kan se på:

/* Output formels */
function calender_option_page() {

  /* Shows the calender formel */
  calender_show_data_and_formel();
  calender_headline_text_plus_date();

}

Min show formel virker fint har prøvet at lave den statisk på siden.
Men det er bare det med at koble det sammen, så jeg kan bruge functioner med deres variabler andre steder

Lidt ligesom en global variabel.

Det er ikke nok at include den. åbenbart :/

Med venlig hilsen
Morten
Avatar billede Morten Professor
25. november 2019 - 21:25 #5
Lukker spørgsmål fandt ud af at bruge en global eksempel:
Har min rene kode med min show data i en include eller require i min functions.php og så kan jeg hente variablen med en global key :o)
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
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

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