Autor Beitrag
OliverN_26
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 252

Win7 64-Bit, WinXP SP3
Delphi 7 Enterprise
BeitragVerfasst: Sa 06.12.14 01:52 
Hallo

Ich weiß nicht genau ob ich hier richtig bin, aber ich hoffe mir kann jemand helfen. Ich versuche mich gerade mit JQUERY Mobile und habe ein Sprungmenu wo ich eine mit PHP geladene Variable weitergeben möchte:
ausblenden volle Höhe HTML-Dokument
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:
38:
<body>
          <div data-role="page" id="a_unerl">
                <div data-theme="e" data-role="header" data-position="fixed">
                      <a data-role="button" style="border-color:#900" data-iconpos="notext" data-icon="arrow-l" class="ui-btn-left"  title="Zurück"    href="../form.php" target="_self"></a>
                      <a data-role="button" style="border-color:#900" data-iconpos="notext" data-icon="home"    class="ui-btn-right" title="Hauptmenu" href="../form.php" target="_self"></a>
                      <h3>unerledigte Aufträge</h3>
                </div>
                <div data-role="content">
                      <div id="main" class="panel" selected="true" title="main">
                            <ul id="listbedarf" data-role="listview" data-filter="true" data-autodividers="false" data-inset="true" data-filter-placeholder="Suche ..." data-filter-theme="d" data-theme="e">
                                  <?php
                                  $result = mysql_query("SELECT ... FROM ... WHERE ... ORDER BY ...");
                                  while($auftraege = mysql_fetch_assoc($result)) {
                                  ?>

                                  <li>
                                        // Hier wird auf das Sprungmenu verwiesen wobei ich die Variable $auftraege['artikel_id'] gerne mit übergeben möchte/muss
                                        <a href="#nav-panel?artikel=<?php echo $auftraege['artikel_id']; // GEHT DAS SO ???? ?>" data-transition="fade" data-icon="bars" title="Menue">
                                              <div style="font-size:16px !important;color:#444 !important;text-shadow:#FFF !important"><?php echo 'Auftrag: '.$auftraege['wonr_um'].' ('.$auftraege['wo_typ'].')'?>
</div>
                                              <div style="
font-size:16px !important;color:#444 !important"><?php echo date("d.m.Y - H:i", strToTime($auftraege['start_date'])); ?></div>
                                              <div style="
font-size:16px !important;color:#777 !important"><?php echo utf8_encode(ucwords(mb_strtolower($auftraege['kd_vorname']))).' '.utf8_encode(ucwords(mb_strtolower($auftraege['kd_nachname']))); ?></div>
                                              <div style="
color:#777 !important;font-weight:normal !important"><?php echo utf8_encode(ucwords(mb_strtolower($auftraege['kd_strasse']))).' '.$auftraege['kd_hsnr'].$auftraege['kd_hsnr_zus']; ?></div>
                                              <div style="
color:#777 !important;font-weight:normal !important"><?php echo $auftraege['kd_plz'].' '.utf8_encode(ucwords(mb_strtolower($auftraege['kd_ort']))); ?></div>
                                        </a>
                                  </li>
                                  
<?php } ?>
                            </ul>
                      </div>
                </div>
                
                // Hier ist das Sprungmenu was für jeden Link ein Menu öffnet. Hier muss ich nur die Artikel-Id übergeben und weiss nicht wie ich HIER daran komme
                <div id="
nav-panel" class="ui-responsive-panel" data-role="panel" data-theme="e" data-display="overlay" data-position="right" data-position-fixed="true">
                      <ul data-role="
listview">
                            <li data-icon="
delete"><a href="#" data-rel="close">Schliessen</a></li>
                            <li><a href="
url.php?artikel=????????????">Auftragsdetails</a></li>
                      </ul>
                </div>
          </div>
    </body>


Ihr hoffe jemand kann mir helfen.

Vielen Dank

Moderiert von user profile iconChristian S.: PHP- durch HTML-Tags ersetzt
ub60
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 694
Erhaltene Danke: 92



BeitragVerfasst: Sa 06.12.14 12:12 
Ohne dass ich Ahnung von jquery habe:

Hilft eventuell das Ablegen der Variablen in einem <input type="hidden" name="Variable" value="Variablenwert"> ?

ub60
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 18702
Erhaltene Danke: 1620

W10 x64 (Chrome, IE11)
Delphi 10.2 Ent, Oxygene, C# (VS 2015), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Sa 06.12.14 19:25 
Das Ablegen in einem versteckten Feld hilft aber nur bei der Übertragung zum Server innerhalb eines Formulars der Seite.

So wie eingangs geschrieben geht das schon, aber es fehlt das urlencode um die Variable so zu maskieren, dass sie auch immer in eine URL passt. Zum Beispiel, wenn Leerzeichen drin sind.
Auch wenn das im Moment nicht der Fall sein sollte, sollte man es trotzdem immer benutzen, sonst vergisst man es vielleicht mal an der falschen Stelle.

Ich würde das ganze allerdings lieber mit Templates umsetzen, dann gibt es solche Probleme wie in der Frage erst gar nicht. ;-)
Solche Engines gibt es einige, ich würde z.B. Smarty empfehlen:
Suche bei Google PHP TEMPLATE ENGINE
www.smarty.net/
OliverN_26 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 252

Win7 64-Bit, WinXP SP3
Delphi 7 Enterprise
BeitragVerfasst: Sa 06.12.14 22:58 
Worin soll der Unterschied liegen? Mir ist nicht bekannt dass SMARTY etwas kann, was PHP nicht auch könnte .. oder irre ich mich da ?

lg
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 18702
Erhaltene Danke: 1620

W10 x64 (Chrome, IE11)
Delphi 10.2 Ent, Oxygene, C# (VS 2015), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Sa 06.12.14 23:57 
Um mal das Beispiel aus der Doku zu bemühen:
ausblenden PHP-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
<?php if(!empty($foo)): ?>
  <?php foreach($foo as $bar): ?>
     <a href="<?=$bar['zig']?>"><?=$bar['zag']?></a>
     <a href="<?=$bar['zig2']?>"><?=$bar['zag2']?></a> 
     <a href="<?=$bar['zig3']?>"><?=$bar['zag3']?></a> 
  <?php endforeach; ?>
<?php else: ?>
   There were no rows found.
<?php endif; ?>
Das sieht mit Smarty so aus:
ausblenden PHP-Quelltext
1:
2:
3:
4:
5:
6:
7:
{foreach $foo as $bar}
  <a href="{$bar.zig}">{$bar.zag}</a>
  <a href="{$bar.zig2}">{$bar.zag2}</a>
  <a href="{$bar.zig3}">{$bar.zag3}</a>
{foreachelse}
  There were no rows found.
{/foreach}
Sprich man hat kürzeren und sauberen Code als HTML-Template und dahinter rein die Logik als PHP-Quelltext um die Daten zu generieren.

Du selbst verwendest ja auch Schleifen gemischt mit HTML-Code. Das macht es sehr unübersichtlich, da man weder die HTML-Seite noch die PHP-Logik so einfach im Zusammenhang überblicken kann.