Checkbox Hilfe benötigt

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Checkbox Hilfe benötigt

    Hallo Community,

    brauche mal wieder Eure Hilfe !

    Ich versuche seit Tagen eine Selbstbucherliste für DPD zu erstellen.
    Leider haben viele Ansätze ins Leere geführt ...

    Im wesentlichen geht´s um folgendes :

    In einen Formular möchte ich mehrere Bestellungen per checkbox auswählen, um diese anschließend in einem neuen Formular als Paketliste auszugeben.

    Schwierig gestaltet sich wohl, daß ich der Checkbox keinen festen Wert zuweisen kann, da die Anzahl der Bestellungen bereits aus der Datenbank ausgelesen werden, und somit variabel sind

    Hat da jemand eine Idee - vielleicht ein script, das man für sowas umbauen könnte ?
    Oder kann mir jemand helfen, da ich mich in php nicht sooo dolle auskenne ???

    Wäre dankbar für jede Hilfe

    habe angefangen, die Werte aus der Datenbank auszulesen und mit checkboxen zu versehen :
    PHP-Code:
    <td class="dataTableContent"><?php echo $orders['customers_name']; ?></td>
    <td class="dataTableContent" align="right"><?php echo $orders['orders_id']; ?></td>
    <td class="dataTableContent" align="center"><?php echo tep_datetime_spc($orders['date_purchased']); ?></td>
    <td class="dataTableContent" align="left"><?php echo $orders['payment_method']; ?></td>
    <td class="dataTableContent" align="left"><?php echo $orders['orders_status_name']; ?></td>
    <td align="left"><input type="checkbox" name="cbox[]" value="[]"></td>
    </tr>
    Die Ausgabe sollte in einem Formular folgendermaßen aussehen :
    PHP-Code:
    <tr bordercolor="#000000" class="Stil10">
              <td>&nbsp;</td>
              <td valign="middle" align="center">
              <?php
    $orders_history_query 
    tep_db_query("select track_num from " TABLE_ORDERS_STATUS_HISTORY " where orders_id = '" 

    tep_db_input($oID) . "'");
    while (
    $orders_history tep_db_fetch_array($orders_history_query)) {
            echo (
    $orders_history['track_num']);
          } 
    ?>
              </td>
             <td align="center">2004<?php echo ($oID); ?></td>
              <td><?php echo tep_address_format($order->delivery['format_id'], $order->delivery6'<br>'''); ?></td>
              <td align="center">
              <?php
    $orders_history_query 
    tep_db_query("select track_num2 from " TABLE_ORDERS_STATUS_HISTORY " where orders_id = '" 

    tep_db_input($oID) . "'");
    while (
    $orders_history tep_db_fetch_array($orders_history_query)) {
            echo (
    $orders_history['track_num2']);
          } 
    ?>          </td>
              <td align="center">Normalpaket</td>
              <td>&nbsp;</td>
            </tr>
    Da ich das alles nicht so draufhabe, und nach dem Try-And-Error Prinzip arbeite, komme ich nicht weiter und brauche dringend

    Eure Hilfe !

    Bin für jeden Tip und Anhaltspunkt dankbar !

    Gruß
    framic

  • #2
    Muss erstmal nachfragen :

    Zuerst wird eine Liste mit Paketen ausgegeben die jeweils über eine Checkbox ausgewählt werden können, oder ?

    Dieses Formular wird abgeschickt, und was soll dann passieren ?

    Kommentar


    • #3
      Hi ExInfernis,

      danke erstmal für Deine Bemühungen !!!

      Folgendes :
      Ich habe die Ausgabe der Bestellungen auf einer Seite und jede Bestellung mit einer checkbox versehen.
      Alle markierten checkboxen sollen auf einer anderen Seite die Datensätze aus zwei Tabellen als Liste anzeigen.

      Habe zwischenzeitlich viel gelesen und ne menge Onlinekosten produziert, aber nicht wirklich was passendes gefunden.
      Folgender Code hat ein bischen weitergeholfen, aber noch nicht so wirklich :
      PHP-Code:
                      <form method="post" action="order_tracking_nn.php">
                      <td class="dataTableContent" align="left"><?php echo $orders['customers_name']; ?></td>
                      <td class="dataTableContent" align="center"><?php echo tep_datetime_spc($orders['date_purchased']); ?></td>
                      <td class="dataTableContent" align="left"><?php echo $orders['payment_method']; ?></td>
                      <td class="dataTableContent" align="left"><?php echo $orders['orders_status_name']; ?></td>
                      <td class="dataTableContent" align="left"><input type="checkbox" name="anzeigen[]" value="<? echo $orders['orders_id']; ?>">
      </td>
                      </tr>
      <?php
          
      }
      ?>
                    <tr>
                      <td colspan="5"><table border="0" width="100%" cellspacing="0" cellpadding="2">
                        <tr>
      <input type="submit" name="submit" value="anzeigen">
      </form>
      Als veranschaulichung folgendes Bild :
      http://www.gebrauchte-karts.de/snap1.jpg

      Die Zweite Seite enthält den Code zum Auslesen, leider aber nicht so, wie ich´s gerne hätte :
      PHP-Code:
      <?php 
      for ($i=0;$i<sizeof($anzeigen);$i++) {
                      echo 
      "$anzeigen[$i] ";
              }
      ?>
      Folgendes Bild so die Ausgabe, wie sie mal sein soll, zeigen :
      http://www.gebrauchte-karts.de/snap2.jpg

      Die Ausgabe der Zahlen besteht zur Zeit nur aus den gecheckten OrderNummern, und die auch noch in einer Reihe.
      So wie ich denke, hat das mit der Übergabe der Checkboxvalue zu tun, und die Ausgabe müßte in einer while Schleife sein, aber ich weiß leider nicht wie.

      Was ich weiß ist,daß das alles viel mit php,sql und html Grundlagen zu tun hat.
      Leider komme ich als Newbe mit try-and-error Diplom nicht weiter ...

      Danke im voraus für die Hilfe !
      Gruß
      framic
      Zuletzt geändert von wahsaga; 16.07.2004, 15:05.

      Kommentar


      • #4
        Guten abend, oder is schon morgen ?

        DU bekommst ja nun von der Form einen Array $anzeigen[] mit den orderIDS mit denen du dann wieder auf die DB zur Ausgabe der Daten zugreifen kannst.

        Dann müsste es eigentlich so gehen :

        PHP-Code:
        <table width="300" border="0" cellspacing="0" cellpadding="5">
        <?PHP

            
        foreach ($_POST['anzeigen'] as $var)
                
                {
                    
        //Schleife wird für alle angeklickte Pakete durchlaufen
                
                    
        echo "<tr>";//Jedes Paket bekommt eine eigene Zeile in der Tabelle
                    
                    
        $sql="Select * from WASWEISSICH where order_id='$var' LIMIT 1";
                    
        $query=@mysql_query($sql) or die (mysql_error());
                    
        $row=mysql_fetch_array($query);
                    
                    
        //Ausgabe der Daten in eine Tabellenzeile
                    
                    
        echo "<td>".$row['Datensatz1']."</td>\n";
                    echo 
        "<td>".$row['Datensatz2']."</td>\n";
                    echo 
        "<td>".$row['Datensatz3']."</td>\n";
                    echo 
        "<td>".$row['Datensatz4']."</td>\n";
                    echo 
        "</tr>\n";
                }
        ?>
        </table>
        Deine DB-Abfrage wird wahrscheinlich etwas komplizierter sein, aber ansonsten müsste es so klappen, habs aber nicht getestet.

        n8

        Kommentar


        • #5

          YoYo, ...
          das wars !!!
          Danke ExInfernis !

          Gerade als Du gepostet hast, bin ich ins Bett ...


          Ich hätte da aber noch ne klitzekleinigkeit

          Jetzt kann ich ja die Daten aus einer Tabelle auslesen.

          Ich brauch aber noch zwei Felder aus einer anderen Tabelle...
          in dieser ist auch orders_id als primary_key gesetzt, genau wie in der ersten Tabelle.

          Weißt Du da vielleicht auch noch ne Lösung ?

          Vielen vielen Dank an ExInfernis von framic

          Kommentar


          • #6
            dann musst du die tabellen irgendwie verknüpfen...kenn jetzt diene tables nicht, aber denk mal en join wirds richten

            Kommentar


            • #7
              Hi,

              hab jetzt mal das Forum durchstöbert, auch einige Topics gefunden,
              aber irgendwie ....

              PHP-Code:
              $sql="Select * from orders INNER JOIN orders_status_history ON orders.orders_id = orders_status_history.orders_id where orders_id='$var' LIMIT 1"
              Geht aber leider nicht ....

              Kurz zum besseren Verständnis (vor allem meinerseits !!!):
              Ich habe 2 Tabellen : orders und orders_status_history

              In beiden Tabellen ist orders_id das primary_key.

              Nun möchte ich alle Datensätze aus der Tabelle [orders] mit den Feldern
              (orders_id) , (delivery_name) , (delivery_adress) , usw
              sowie aus der Tabelle [orders_status_history] mit den Feldern
              (orders_id) , (track_num) und (track_num2)
              auslesen, die der Variablen $var und orders_id ensprechen




              leider kommt dann immer noch :
              Column: 'orders_id' in where clause is ambiguous
              Das heist doch, das die Abfrage nicht eindeutig ist , oder ???

              Kann mir das evtl jemand richtig stellen ???

              Danke für Eure Bemühungen
              Gruß framic

              Kommentar


              • #8
                dh., daß der name nicht eindeutig ist.
                du solltest also noch den tabellennamen mit angeben, damit sql weiß, wodrauf du dich beziehst ...
                Die Zeit hat ihre Kinder längst gefressen

                Kommentar


                • #9
                  Jupp, da order_id in beiden Tabellen als Spalte vorkommt musst du mit Tabellename.Spaltename ansprechen.

                  Kommentar


                  • #10
                    YES, ...

                    soweit so gut ...
                    ich komme der Sache langsam näher !

                    die Tabelle habe ich jetzt wie folgt angesprochen und es funktioniert :
                    PHP-Code:
                    $sql="Select * from orders INNER JOIN orders_status_history ON orders.orders_id = orders_status_history.orders_id where orders.orders_id='$var' LIMIT 1"
                    Um jetzt zum Bsp die Werte aus track_num der tabelle orders_status_history auszugeben, genügt aber wohl nicht :
                    PHP-Code:
                    echo "<td>".$row['track_num']."</td>\n"
                    (geht nicht : try-and-error)

                    Und nu ?

                    Gruß
                    framic

                    Kommentar


                    • #11
                      Mit

                      PHP-Code:
                      $sql="Select * from orders ... 
                      hast du auch nur die Werte der Tabelle Orders ausgewählt, denke ich. Kenne mich mit Joins aber noch nicht so aus.

                      Mein bisher einziger Join (der funktioniert hat) :

                      PHP-Code:
                      $sql="Select tb1.*, tb2.* from tabelle1 tb1, tabelle2 tb2 WHERE ... 
                      Kannst es ja mal probieren.

                      Mache meist auch "try and error"

                      Kommentar


                      • #12
                        Hi ExInfernis,

                        kriegs nicht hin ...

                        Auf jeden Fall hast Du recht, die Abfrage spricht nur auf die Tabelle orders an.

                        Die Tabelle orders_status_history wird garnicht gefunden.

                        Kann es auch daran liegen, daß die Felder varchar sind ? Habe irgendwo mal sowas gelesen ....

                        habe jetzt garkeinen Durchblick mehr ...

                        Zwischendurch möchte ich mich auch nochmal für Deine Mithilfe bei meinem Problem bedanken .
                        Gruß
                        Frank

                        Kommentar


                        • #13
                          hi...

                          ich habs zwar noch nicht ausprobiert aber versuch mal so: (die spalten die du noch ahben willst musst noch mit angeben.)

                          Code:
                          SELECT a.orders_id, a.delivery_name, a.delivery_adress
                                       b. orders_id, b.track_num, b.track_num2
                          FROM orders a INNER JOIN orders_status_history b
                          ON a.orders_id = b.orders_id
                          WHERE a.orders_id = '".$var."'

                          Kommentar


                          • #14
                            Danke ! Vielmals Danke !

                            @all

                            Vielen Dank für die sehr gute Hilfe in diesem Forum !

                            Hier haben auch Anfänger ´ne Chance

                            Code as follows :

                            PHP-Code:
                            $sql="SELECT a.orders_id, a.delivery_name, a.delivery_street_address,
                             a.delivery_postcode, a.delivery_city, b. orders_id, b.track_num, 
                            b.track_num2 FROM orders a INNER JOIN orders_status_history b ON 
                            a.orders_id = b.orders_id WHERE a.orders_id = '"
                            .$var."' AND b.track_num 
                            IS NOT NULL LIMIT 1"

                            Viele Grüße
                            framic

                            Kommentar

                            Lädt...
                            X