ERLEDIGT
NEIN
NEIN
ANTWORTEN
18
18
ZUGRIFFE
612
612
EMPFEHLEN
-
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($fp, 4096, ';');
if($aktuelleZeilenNummer == 0) //Probennummern lesen
{
for($i = 4; $i < count($zeile); $i++)
{
$InterfaceElement = new CSVInterfaceList();
$InterfaceElement->Probennummer = $zeile[$i];
$this->csv_array[-4 + $i] = $InterfaceElement;
}
}
else if($aktuelleZeilenNummer == 1) //Probennamen lesen
{
for($i = 4; $i < count($zeile); $i++)
{
$this->csv_array[-4 + $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[-4 + $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 +1 == 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)
-
07.02.12 09:50 #17Ch Tutorials.de Gastzugang
Auf die Schnelle finde nirgends die Ausgabe? Der entsprechende teil vom Js wo du den Request holst fehlt auch.
-
07.02.12 10:08 #18
- 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.
-
07.02.12 10:19 #19Ch 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
-
Seltsames Div verhalten
Von nchristoph im Forum CSSAntworten: 5Letzter Beitrag: 11.11.10, 11:04 -
IE7-Bug: OnMouseOut - seltsames Verhalten
Von JavaUncle im Forum Javascript & AjaxAntworten: 4Letzter Beitrag: 21.01.08, 17:52 -
DIV Layout, seltsames Verhalten vom IE
Von vert0r im Forum CSSAntworten: 16Letzter Beitrag: 02.07.07, 21:55 -
Seltsames Verhalten bei Key events
Von n8mensch im Forum .NET CaféAntworten: 3Letzter Beitrag: 29.03.07, 17:26 -
Seltsames Verhalten bei Tabellen in Div
Von rethus im Forum CSSAntworten: 3Letzter Beitrag: 27.12.06, 16:07





Zitieren
Login





