tutorials.de Buch-Aktion 05/2012
Seite 2 von 2 ErsteErste 12
ERLEDIGT
NEIN
ANTWORTEN
18
ZUGRIFFE
612
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #16
    fbfeix fbfeix ist offline Mitglied Gold
    Registriert seit
    Jul 2011
    Beiträge
    117
    Oke ich bin leider kein Profi aber eine "Kann" Option ist eine Option die enthalten sein kann oder?

    Zu den Frage:

    Es wirft keine Fehler und es wird auch richtig verarbeitet. Mein Problem ist ja, dass es nicht sofort verarbeitet wird, sondern erst wenn ich auf den Aktuallisieren-Button des Firefox klicke.

    Zur Erinnerung nochmal: Es betrifft nur den Firefox, der InternetExplorer macht seinen Job hier ausnahmsweiße super.

    Und hier Code:

    PHP-Code:
    class CSVInterfaceList
    {
        public 
    $Probenname;
        public 
    $Probennummer;
        public 
    $InterfacePairArray;
    }


    /**
     * <b>CSVInterfacePair</b>
     * <p>Enthält zwei Eigenschaften:
     * <table><tr><th>$ID</th><th>$Value</th></tr>
     * <tr>
     * <td>Die ID</td>
     * <td>Der Wert zu dieser ID</td>
     * </tr>
     * </table>
     * @author fbfeix
     *
     */
    class CSVInterfacePair
    {
        public 
    $ID;
        public 
    $Value;
    }


    class 
    CSVInterface
    {

        protected 
    $csv_array// 2D-Array: 1. Dimension: Zeile, 2. Dimension: Spalte

        /**
         * <h3>Ein Array, dass alle Verfügbaren IDs enthält.</h3>
         * </p>Der Index des jeweiligen Elements ist dabei die Wessling ID.</p>
         * <p>Der Wert ist der Rohrdorfer Name wie er in der Tabelle in MySQL steht.</p>
         * @var geschütztes Array(<b>WesslingID</b> | <b>Rohrdorfer Name</b>)
         */
        
    protected $uebersetzungs_array//index: Wessling-Id, Wert: Rohrdorfer Name



        /**
         * Konstruktor der Klasse 'CSVInterface'.
         * Initialisiert das Übersetzungsarray
         * @return boolean
         */
        
    public function __construct()
        {

            
    //Mit MySQL verbinden
            
    $con mysql_connect("localhost""root""");
            if (!
    $con)
            return 
    false;

            
    //Datenbank öffnen
            
    $select mysql_select_db("labor");
            if (!
    select)
            return 
    false;

            
    //markiere genaue Tabelle und Spaltenname
            
    $sql "SELECT Rohrdorfer_Bezeichnung, wessling_id FROM sbs_werozuordnung_tbl";

            
    //Öffnen der Tabelle und Ergebnis auswerten
            
    $result mysql_query($sql);
            if(
    $result)
            {
                while(
    $row mysql_fetch_array($result))
                {
                    
    $this->uebersetzungs_array[$row['wessling_id']] = $row['Rohrdorfer_Bezeichnung'];
                }
                    
            }
            else
            echo 
    "Beim anlegen eines Übersetzungsarrays ist ein Fehler aufgetreten";

            
    //Datenbank schließen
            
    mysql_close($con);
        }



        private function 
    read_csv($path)
        {

            
    //prüft den Pfad
            
    if($path == "" || $path == null)
            return 
    false//Pfad ist leer, Funktion beenden

            //Ist die Datei auf die der Pfad verweist vorhanden?
            
    if(!file_exists($path))
            {
                echo 
    "Datei existiert nicht";
                return 
    false//Datei ist nicht vorhanden: Funktion beenden
            
    }

            
    $fp fopen($path'r');
            if(
    $fp == false)
            {
                return 
    false;
            }

            
    //Zählvariable
            
    $aktuelleZeilenNummer 0;

            while(! 
    feof($fp))
            {
                
    $zeile fgetcsv($fp4096';');

                if(
    $aktuelleZeilenNummer == 0//Probennummern lesen
                
    {
                    for(
    $i 4$i count($zeile); $i++)
                    {
                        
    $InterfaceElement = new CSVInterfaceList();
                        
    $InterfaceElement->Probennummer $zeile[$i];
                        
    $this->csv_array[-$i] = $InterfaceElement;
                    }
                }
                else if(
    $aktuelleZeilenNummer == 1//Probennamen lesen
                
    {
                    for(
    $i 4$i count($zeile); $i++)
                    {
                        
    $this->csv_array[-$i]->Probenname $zeile[$i];
                    }
                }
                else 
    //Probenwerte lesen
                
    {
                    
    $zeile $this->ReplaceNull($zeile);
                    for(
    $i 4$i count($zeile); $i++)
                    {
                        if(
    $zeile[1] != "" && $zeile[$i] != "")
                        {
                            
    $Pair = new CSVInterfacePair();
                            
    $Pair->ID $zeile[1];
                            
    $Pair->Value $zeile[$i];

                            
    $this->csv_array[-$i]->InterfacePairArray[] = $Pair;
                        }

                    }

                }
                
    //Zählvariable um 1 erhöhen
                
    $aktuelleZeilenNummer++;
            }


            
    fclose($fp);

        }



        
    /**
         * <b>CSV_IntoTmpDB()</b>
         * <p>
         * @return boolean
         */
        
    private function CSV_IntoTmpDB()
        {



            
    $con mysql_connect("localhost""root""");
            if (!
    $con)
            return 
    false;

            
    $select mysql_select_db("labor");
            if (!
    select)
            return 
    false;


            
    //_____________________________________________________
            //#####################################################
            //Tmp-Datenbank-tabellen leeren (daten_tbl, proben_tbl)

            
    $sql "TRUNCATE TABLE `sbs_daten_tbl` ";

            
    $result mysql_query($sql);

            if(!
    result)
            die(
    'Ungültige Abfrage: ' mysql_error());

            
    $sql "TRUNCATE TABLE `sbs_proben_tbl` ";

            
    $result mysql_query($sql);

            if(!
    result)
            die(
    'Ungültige Abfrage: ' mysql_error());
            
    //#####################################################
            //#####################################################



            //_____________________________________________________
            //#####################################################
            //neue Daten in Tmp-Datenbank-tabellen einfügen (daten_tbl, proben_tbl)



            //Tab sortiert nach den Proben
            
    echo '<div id="tabcontrol"><ul>';

            for(
    $i 0$i count($this->csv_array); $i++)
            {

                if(
    $this->csv_array[$i]->Probenname != "" || $this->csv_array[$i]->Probennummer != "")
                {
                    echo 
    '<li><a href="#tabs-'.$this->csv_array[$i]->Probennummer.'">'.$this->csv_array[$i]->Probenname.' ('.$this->csv_array[$i]->Probennummer.')</a></li>';
                }
            }

            echo 
    '</ul>';

            for(
    $i 0$i count($this->csv_array); $i++)
            {

                if(
    $this->csv_array[$i]->Probenname != "" || $this->csv_array[$i]->Probennummer != "")
                {
                    
    //Start des Tab-Contents
                    
    echo '<div id="tabs-'.$this->csv_array[$i]->Probennummer.'">';
                    echo 
    '<form name="form_'.$this->csv_array[$i]->Probennummer.'" id="form_'.$this->csv_array[$i]->Probennummer.'" action="templates/insertdata.php" method="post">';

                    echo 
    '<table>';
                    echo 
    '<tr><th style="width: 50%; ">Name</th><th style="width: 50%; ">Wert</th></tr>';

                    
    $sql "INSERT INTO proben_tbl (proben_nummer, proben_name) VALUES (".$this->csv_array[$i]->Probennummer.",'".$this->csv_array[$i]->Probenname."')";

    //                 echo "<br />".$sql."<br />";
                    
    $result mysql_query($sql);

                    if(!
    result)
                    die(
    'Ungültige Abfrage: ' mysql_error());

                    
    $sql "INSERT INTO daten_tbl (value, werozuordnung_id, daten_proben_id) VALUES (".
                    
    $this->csv_array[$i]->InterfacePairArray[0]->Value.
                            
    ",'".$this->csv_array[$i]->InterfacePairArray[0]->ID.
                            
    "',".mysql_insert_id().")";

                    for(
    $j 0$j count($this->csv_array[$i]->InterfacePairArray); $j++)
                    {
                        
    $sql .= ", (".$this->csv_array[$i]->InterfacePairArray[$j]->Value.
                                    
    ",'".$this->csv_array[$i]->InterfacePairArray[$j]->ID.
                                    
    "',".mysql_insert_id().")";

                        
                        
    //liste erzeugen:
                        
    if($this->uebersetzungs_array[$this->csv_array[$i]->InterfacePairArray[$j]->ID])
                        {
                        echo 
    '<tr><td style="border-bottom: 1px solid #ddd;">'.$this->uebersetzungs_array[$this->csv_array[$i]->InterfacePairArray[$j]->ID].'</td>';
                        echo 
    '<td style="border-bottom: 1px solid #ddd;"><input class="tablecontrollinginput" type="text" name="'.
                        
    $this->csv_array[$i]->InterfacePairArray[$j]->ID."of".$this->csv_array[$i]->Probennummer.
                                    
    '" value="'.
                        
    $this->csv_array[$i]->InterfacePairArray[$j]->Value.
                                    
    '"/></td></tr>'."\n";
                        }
                    }
                    
    //                 echo "<br />".$sql."<br />";

                    //Probennummer, -name und -bemerkung
                    
    echo "<tr><td><br /></td><td><br /></td></tr>";
                    echo 
    '<tr><td>Probennummer</td><td><input type="text" name="probennummer" class="tablecontrollinginput" value="'.$this->csv_array[$i]->Probennummer.'" /></td></tr>';
                    echo 
    '<tr><td>Probenname</td><td><input type="text" name="probenname" class="tablecontrollinginput" value="'.$this->csv_array[$i]->Probenname.'" /></td></tr>';
                    echo 
    '<tr><td>Bemerkung</td><td><input type="text" name="probenbemerkung" class="tablecontrollinginput"  /></td></tr>';

                    echo 
    "</table>";
                    
    //Ende des Tab-Contents

                    
    echo '</form>';
                    echo 
    '<div style="min-height: 40px;" id="Con_for_Btn_'.$this->csv_array[$i]->Probennummer.'">';

                    echo 
    '<button name="Button'.$this->csv_array[$i]->Probennummer.'" style="float: right; padding: 4px 0px;" onclick="SetValues(document.getElementById('."'" 'form_'.$this->csv_array[$i]->Probennummer."'),'tabs-".$this->csv_array[$i]->Probennummer."')".'">In Datenbank eintragen</button>';
                    echo 
    '</div>';

                    echo 
    '</div>';

                    
    $result mysql_query($sql);

                    if(!
    result)
                    die(
    'Ungültige Abfrage: ' mysql_error());
                }
            }




            
    //#####################################################
            //#####################################################


            
    mysql_close($con);
        }

        private function 
    CSV_IntoTmpDB2()
        {
            
    $con mysql_connect("localhost""root""");
            if (!
    $con)
            return 
    false;

            
    $select mysql_select_db("labor");
            if (!
    select)
            return 
    false;

            
    $sql "INSERT INTO sbs_daten_tbl (value, werozuordnung_id) VALUES ";

            echo 
    '<table>';
            echo 
    '<tr><th style="width: 400px; ">Name</th><th style="width: 400px; ">Wert</th></tr>';

            for(
    $i 2$i count($this->csv_array); $i++)
            {
                for(
    $j 4$j count($this->csv_array[$i]); $j++) //beginnt bei der 5. Spalte
                
    {
                    
    $this->csv_array[$i][$j] = str_replace(',''.'$this->csv_array[$i][$j]);
    //                 if($i > 2)
    //                 {
    //                     $this->csv_array[$i][$j] = str_replace('.', '', $this->csv_array[$i][$j]);
    //                 }
                    
    if($this->csv_array[$i][$j] != "" && $this->csv_array[$i][1] != ""//damit werden alle leeren Elemente entfernt bzw. nicht eingetragen
                    
    {

                        if(
    $i +== count($this->csv_array))
                        {
                            if(
    $sql != "INSERT INTO sbs_daten_tbl (value, werozuordnung_id) VALUES ")
                            
    $sql .= ", (".$this->csv_array[$i][$j].", '".$this->csv_array[$i][1]."') ";
                            else
                            
    $sql .= "(".$this->csv_array[$i][$j].", '".$this->csv_array[$i][1]."') ";

                            if(
    $this->uebersetzungs_array[$this->csv_array[$i][1]]!= "")
                            {
                                echo 
    '<tr><td style="border-bottom: 1px solid #ddd;">'.$this->uebersetzungs_array[$this->csv_array[$i][1]].'</td>';
                                echo 
    '<td style="border-bottom: 1px solid #ddd;"><input class="tablecontrollinginput" type="text" name="'.$this->csv_array[$i][1].'" value="'.$this->csv_array[$i][$j].'"/></td></tr>."\n"';
                            }
                        }
                        else
                        {
                            if(
    $sql != "INSERT INTO sbs_daten_tbl (value, werozuordnung_id) VALUES ")
                            
    $sql .= ", (".$this->csv_array[$i][$j].", '".$this->csv_array[$i][1]."')";
                            else
                            
    $sql .= "(".$this->csv_array[$i][$j].", '".$this->csv_array[$i][1]."') ";
                            if(
    $this->uebersetzungs_array[$this->csv_array[$i][1]]!= "")
                            {
                                echo 
    '<tr><td style="border-bottom: 1px solid #ddd;">'.$this->uebersetzungs_array[$this->csv_array[$i][1]].'</td>';
                                echo 
    '<td style="border-bottom: 1px solid #ddd;"><input class="tablecontrollinginput" type="text" name="'.$this->csv_array[$i][1].'" value="'.$this->csv_array[$i][$j].'"/></td></tr>'."\n";
                            }
                        }
                            
                    }

                }
            }

            echo 
    '</table>';

            
    $result mysql_query($sql);

            if(!
    result)
            die(
    'Ungültige Abfrage: ' mysql_error());


            
    mysql_close($con);

        }


        
    /**
         * Löscht ein leeres Element in einem Array
         * @param 1D-Array $zeile
         * @return 1D-Array
         */
        
    private function DeleteEmptyColumns($zeile)
        {
            for(
    $i 0$i count($zeile); $i++)
            {
                if(
    $zeile[$i] != "")
                {
                    
    $output[] = $zeile[$i];
                }
            }
            return 
    $output;
        }

        private function 
    ReplaceNull($zeile)
        {
            for(
    $i 0$i count($zeile); $i++)
            {
                if(
    $zeile[$i] != "")
                {
                    
    $output[$i] = str_replace('.'''$zeile[$i]);
                    
    $output[$i] = str_replace(',''.'$output[$i]);
                    
    $output1[$i] = str_replace(array('-/-''<'), ''$output[$i]);
                }
            }
            return 
    $output1;
        }

        public function 
    ImportCSVintoTmp($path)
        {
            
    $this->read_csv($path);
            
    $this->CSV_IntoTmpDB();
            return 
    true;
        }

        private function 
    MoveImportedCSV()
        {

        }

        public function 
    Import_TmpDB_intoDB()
        {

        }

    Geändert von fbfeix (07.02.12 um 09:54 Uhr)
     

  2. #17
    Ch Tutorials.de Gastzugang
    Auf die Schnelle finde nirgends die Ausgabe? Der entsprechende teil vom Js wo du den Request holst fehlt auch.
     

  3. #18
    FipsTheThief FipsTheThief ist offline Mitglied Platin
    Registriert seit
    Oct 2004
    Ort
    Leipzig
    Beiträge
    589
    Also wenn die Datei über Ajax übertragen wird, Dateiuploads über Ajax gehen ja und diese Datei drüben ankommt was sie auch tut denke ich.

    Dann ist das Problem a) auf Serverseite zu suchen oder b) irgendwas läuft beim IE falsch. Einfach mal noch andere browser durchtesten.

    Opera, Chrome, Safari, und mit dem IE Tester alle anderen Versionen vom IE. Da könntest schon einmal einschränken. Wenn es dann immer nur noch im FF geht ist es merkwürdig.
    Sollte es nur im IE ( ich rede da von den älteren Versionen wie den 6er) nicht geht dann ist das Problem eindeutig dort zu suchen.

    1 Mögliche Ursache wäre natürlich das der sich da mit dem Charset sich irgendwie verhaspelt und alles kaputt geht dadurch.
     

  4. #19
    Ch Tutorials.de Gastzugang
    Also ich steige hier dann aus, die Infos sind einfach zu wenig. Erstelle doch mal ein Test case und poste mal den Link.
     

Ähnliche Themen

  1. Seltsames Div verhalten
    Von nchristoph im Forum CSS
    Antworten: 5
    Letzter Beitrag: 11.11.10, 11:04
  2. IE7-Bug: OnMouseOut - seltsames Verhalten
    Von JavaUncle im Forum Javascript & Ajax
    Antworten: 4
    Letzter Beitrag: 21.01.08, 17:52
  3. DIV Layout, seltsames Verhalten vom IE
    Von vert0r im Forum CSS
    Antworten: 16
    Letzter Beitrag: 02.07.07, 21:55
  4. Seltsames Verhalten bei Key events
    Von n8mensch im Forum .NET Café
    Antworten: 3
    Letzter Beitrag: 29.03.07, 17:26
  5. Seltsames Verhalten bei Tabellen in Div
    Von rethus im Forum CSS
    Antworten: 3
    Letzter Beitrag: 27.12.06, 16:07

Stichworte