mediengestalter.info
FAQ :: Mitgliederliste :: MGi Team

Willkommen auf dem Portal für Mediengestalter

Aktuelles Datum und Uhrzeit: Di 23.04.2024 19:29 Benutzername: Passwort: Auto-Login

Thema: Id auslesen JavaScript vom 23.04.2010


Neues Thema eröffnen   Neue Antwort erstellen MGi Foren-Übersicht -> Programmierung -> Id auslesen JavaScript
Autor Nachricht
SimonDerDude
Threadersteller

Dabei seit: 15.01.2010
Ort: error: undefined
Alter: 35
Geschlecht: Männlich
Verfasst Fr 23.04.2010 12:18
Titel

Id auslesen JavaScript

Antworten mit Zitat Zum Seitenanfang

Tagchen,

ich schreibe bezüglich einer Aufgabe die mir wie Quantenphysik erscheint.

Ich arbeite am Intranet unserer Firma welches ich mit smarty aufgebaut habe.
Ausserdem habe ich es geschafft JQuery Elemente einzubinden.
Eines dieser Elemente dreht sich um das styling für Selectboxen, funktioniert auch wunderbar wenn die Box statisch in der .tpl drin steht.

- Die Seite ist eine "Bestellliste", die erste Selectbox beinhaltet Daten (z.B 2010-03-15).
- Durch klicken eines Datums wird die Liste erzeugt (Tabelle) in welcher sich weitere Selectboxen befinden

Die Ausgabe erfolgt über eine Schleife
Code:
{section name=lo loop=$data.art[0]}

und endet bei
Code:
{$data.art[3][lo]}


In der statischen Variante müssen die IDs im script festgehalten, und an die Selectboxen verteilt werden.
Code:
$(document).ready(function(){

                $('#my-dropdown, #my-dropdown1, #my-dropdown2').sSelect();

Da die Tabelle nun aber ausgegeben wird, kann ich keine IDs vergeben und bin gezwungen diese auszulesen.
Zurzeit sieht es folgendermaßen aus:
Screenshot

Wie soll ich das Problem lösen?
Ich habe in der .class schon folgendes versucht... guter Ansatz?
Code:
function showArt() {
         [b]$id = array();[/b]
         $arti = array();
         $menge = array();
         $datum = array();
         $statusid = array();
         $sql = "SELECT [b]b.id[/b], b.best_id, b.art_id, b.menge, b.datum, a.artikel_id, a.kategorie_id, a.art_name
               FROM bestellung b, best_artikel a
               WHERE b.art_id = a.artikel_id
               AND b.datum = '".$_POST['datums']."' ";
         $dab = new Database();
         $dab->query($sql);
         $res = $dab->getResult();
         $dab->dbClose();
         if(mysql_num_rows($res) > 0) {
            while($row = mysql_fetch_row($res)) {
               [b]array_push($id, $row[0]);[/b]
               array_push($arti,$row[7]);
               array_push($menge,$row[3]);
               array_push($datum,$row[4]);
            }
         }
         return array($id, $arti, $menge, $datum);
      }


Wenn ihr mehr Infos braucht sagt bescheid, ich steh aufm Schlauch * Keine Ahnung... *


edit:

Hier noch html
Code:
<form action="index.php?page=bestellungen&p=bestellliste" method="POST">
         Datum wählen:<div id="win-xp">
          <select id="my-dropdown" name="datums" onchange="this.form.submit()">
               <option value="">Wähle aus</option>
               {section name=yo loop=$data.datum[0]}
               <option value="{$data.datum[0][yo]}" {if $data.datum[0][yo] eq $data.postdatum} selected{/if}>{$data.datum[0][yo]}</option>
            {/section}
            </div>
            </select>
         {if $data.postdatum neq ""}
            
         <br><br><br>

         <table id="regular" cellpadding="0">
         <tr bgcolor="#f87211"><th class='ttitle'>Artikel</th><th class='ttitle'>Menge</th><th class='ttitle'>Bestelldatum</th><th class='ttitle'>Von</th><th class='ttitle'>Status</th></tr>
         {section name=lo loop=$data.art[0]}
         <tr bgcolor="{cycle values="#eeeeee, #d0d0d0"}">
            <td>{$data.art[1][lo]}</td>
            <td>{$data.art[2][lo]}</td>
            <td>{$data.art[3][lo]}</td>
            <td>s</td>
            <td><div id="win-xp"><input type="hidden" name="javaid" value="{$data.art[0][lo]}"><select id="my-dropdown1" name="status">
                  <option value="">Wähle</option>
                  <option value="bestellt">Bestellt</option>
                  <option value="verschickt">Verschickt</option>
            </select></div></td>
         </tr>
         {/section}
         </table>
         <input class="awesome" type="submit" name="status" value="Status setzen">
         {/if}
         </form>


Zuletzt bearbeitet von SimonDerDude am Fr 23.04.2010 12:22, insgesamt 1-mal bearbeitet
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
sahnemuh

Dabei seit: 19.06.2003
Ort: /dev/null
Alter: 42
Geschlecht: Männlich
Verfasst Fr 23.04.2010 13:02
Titel

Antworten mit Zitat Zum Seitenanfang

[/code]nach meinem verständnis müßte das ganze etwa so laufen:

class:
Code:

        <?php
                function showArt() {
               
                        $produkte = array();
                 
                        $sql = "SELECT b.id, b.best_id, b.art_id, b.menge, b.datum, a.artikel_id, a.kategorie_id, a.art_name
                                FROM bestellung b, best_artikel a
                                WHERE b.art_id = a.artikel_id
                                AND b.datum = '".$_POST['datums']."' ";
                        $dab = new Database();
                        $dab->query($sql);
                        $res = $dab->getResult();
                        $dab->dbClose();
                        if(mysql_num_rows($res) > 0) {
                           while($row = mysql_fetch_row($res)) {
                               array_push($produkte,array("id" => $row[0],"artikel" => $row[7],"menge"=>$row[3],"datum"=>$row[4]));
                           }
                        }
                        return $produkte;
                }       
                $smarty->assign('products',showArt());
        ?>
       


smarty:
Code:

        <table id="regular" cellpadding="0">
                <tr bgcolor="#f87211">
                        <th class='ttitle'>Artikel</th>
                        <th class='ttitle'>Menge</th>
                        <th class='ttitle'>Bestelldatum</th>
                        <th class='ttitle'>Von</th>
                        <th class='ttitle'>Status</th>
                </tr>
                 {section name=product loop=$products}
                        <tr bgcolor="{cycle values="#eeeeee, #d0d0d0"}">
                           <td>{$products[product].artikel}</td>
                           <td>{$products[product].menge}</td>
                           <td>{$products[product].datum}</td>
                           <td>s</td>
                               <td>
                                   <div id="win-xp">
                                           <input type="hidden" name="javaid" value="{$products[product].id}">
                                           <select id="my-dropdown-{$products[product].index}" name="status">
                                           <option value="">Wähle</option>
                                           <option value="bestellt">Bestellt</option>
                                           <option value="verschickt">Verschickt</option>
                                   </select>
                                   </div>
                               </td>
                        </tr>
                 {/section}
         </table>
       


javascript:

Code:

                $(document).ready(function() {
                        $('#regular select').sSelect();
                });
       


ich kenn mich zugegebenermaßen null mit smarty aus. die richtung dürfte aber stimmen


Zuletzt bearbeitet von sahnemuh am Fr 23.04.2010 13:03, insgesamt 1-mal bearbeitet
  View user's profile Private Nachricht senden
Anzeige
Anzeige
SimonDerDude
Threadersteller

Dabei seit: 15.01.2010
Ort: error: undefined
Alter: 35
Geschlecht: Männlich
Verfasst Fr 23.04.2010 13:36
Titel

Antworten mit Zitat Zum Seitenanfang

Eigenartigerweise musste ich nur das einsetzen
Code:
$('#regular select').sSelect();


Au weia!

Der Rest konnte beim Alten bleiben.
Besten dank * Applaus, Applaus *

Dein .class PHP hatte einen kleinen parse Fehler.

Code:
$smarty->assign('products',showArt());

muss in die geschweifte Klammer.
Aber sonst gut, für null Ahnung *bäh*
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
sahnemuh

Dabei seit: 19.06.2003
Ort: /dev/null
Alter: 42
Geschlecht: Männlich
Verfasst Fr 23.04.2010 13:45
Titel

Antworten mit Zitat Zum Seitenanfang

ich hab' in die doku geschaut *zwinker*

noch ein hinweis: im moment haben deine dropdowns alle die selbe id und den selben namen - das dürfte bei der formularverarbeitung arge probleme geben. daher auch meine änderungen an deinem code.


Zuletzt bearbeitet von sahnemuh am Fr 23.04.2010 13:46, insgesamt 1-mal bearbeitet
  View user's profile Private Nachricht senden
SimonDerDude
Threadersteller

Dabei seit: 15.01.2010
Ort: error: undefined
Alter: 35
Geschlecht: Männlich
Verfasst Fr 23.04.2010 15:21
Titel

Antworten mit Zitat Zum Seitenanfang

Um den Feinschliff kümmere ich mich wenn ich in der Bugfix Phase bin.
Danke für den Hinweis, wollte das Script so wenig wie möglich verändern, eventuell muss ich Klassen verwernden.

Das Dropdown Script ist übelst ausgefuchst, über die Selectbox wird einfach ein <ul> gelegt damit es vollkommen verändert werden kann.
Das Script holt sich dann den Inhalt aus der Box und zeigt diesen unter den <li> an. *bäh*


Zuletzt bearbeitet von SimonDerDude am Fr 23.04.2010 15:25, insgesamt 1-mal bearbeitet
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
sahnemuh

Dabei seit: 19.06.2003
Ort: /dev/null
Alter: 42
Geschlecht: Männlich
Verfasst Fr 23.04.2010 19:26
Titel

Antworten mit Zitat Zum Seitenanfang

ja, schon klar. die values werden aber bei auswählen eines solchen drodowns zumeist trotzdem wieder in die orginal formularelemente geschrieben. ich kenn' solche scripte und hab' sie auch schon selbst gebaut. um sinnvolle benamung deiner selectboxen wirst du nicht herumkommen.
  View user's profile Private Nachricht senden
 
Ähnliche Themen layerhöhe per javascript auslesen
Javascript: Scrollposition auslesen
(Hilfe) XML Datei mit Javascript auslesen
[JavaScript] - Cookies auslesen / trennen - an ASP übergeben
CSS auslesen per Javascript klappt nicht richtig
[javascript]Script gesucht zum Maße einer mov auslesen
Neues Thema eröffnen   Neue Antwort erstellen
MGi Foren-Übersicht -> Programmierung


Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst an Umfragen in diesem Forum nicht mitmachen.