Zum Inhalt springen

Rohde

Mitglieder
  • Gesamte Inhalte

    441
  • Benutzer seit

  • Letzter Besuch

Alle Inhalte von Rohde

  1. Es geht doch: <script> function selektiere(txt) { var r = document.forms[0].versuch.createTextRange(); r.findText(txt); r.select(); } </script> <form > <input type="text" name="versuch" value="das ist er"><br> </form> <a href="javascript:selektiere('ist')">markieren</a>
  2. Mittels text = document.forms[0].textbox.value; selecttext = document.selection.createRange().text; läßt sich im Internet Explorer feststellen, welcher Text durch den Benutzer markiert wurde. Geht das ganze auch andersrum? Ich möchte per Javascript einen Teiltext innerhalb eines Textfeldes markieren.
  3. Stimmt, in meinem Quelltext ist das auch so. Vielleicht wurde es durch die Foren-Software so umgesetzt, um sich vor irgendwelchen Befehlen zu schützen, die man sonst unterschieben könnte. Ich habe aber noch einen anderen Fehler gefunden. Unter 1. muß der Satz "document.forms[0].textfeld.selectedIndex.focus() funktioniert ja leider nicht." natürlich "document.forms[0].selectbox.selectedIndex.focus() funktioniert ja leider nicht." heißen.
  4. Hallo zusammen, ich versuche gerade mit Hilfe von JavaScript eine Combobox nachzubasteln, also ein Formularelement, daß es erlaubt, Texte einzugeben, aber gleichzeitig eine Auswahlliste ist (so wie etwa die Adreßleiste des Browsers). Dazu benutze ich ein Textfeld und eine zuerst versteckte mehrzeilige Auswahlliste. Alle Werte dieser Auswahlliste sind zusätzlich in einem Array untergebracht. Beide Formularelemente sind per CSS an der gleichen Stelle positioniert. Gibt man nun Text in das Textfeld ein, werden die einzelnen Elemente des Arrays nach diesem Textanfang durchsucht. Wird das erste Element gefunden, welches mit diesem Textteil anfängt, wird der Text im Textfeld entsprechend auf den Wert des gefunden Elementes gesetzt. In der immer noch versteckten Auswahlliste wird der entsprechende Wert selektiert. Neben dem Textfeld gibt es noch einen Link, der für diesen Pfeil nach unten steht, der neben den Comboboxen zu finden ist. Wird dort nun draufgeklickt, wird die Auswahlliste eingeblendet und man kann einen Wert über die Auswahlliste auswählen. Durch die Auswahl aus der Liste wird der Wert in das Textfeld geschrieben und das Auswahlfeld wieder ausgeblendet. Die Variable oldlength in dem Skript dient nur dazu, den Fall abzufangen, wenn das letzte Zeichen gelöscht wird. In diesem Fall soll der Text nicht erweitert werden. oldselecttext wird benötigt, um herauszufinden, ob mehr als ein Zeichen markiert wurde und gelöscht bzw. ersetzt wurde, um den Text im Textfeld bei Bedarf zu erweitern. Ich habe jetzt zwei Probleme bzw. Anliegen: 1. Wenn die Auswahlliste eingeblendet wird, soll der selektierte Wert auf den ersten Blick sichtbar sein. Wenn Ihr das Skript startet, in das Eingabefeld ein A eingebt und anschließend auf das Y klickt, werdet Ihr verstehen, was ich meine. Man muß in diesem Fall erst einmal in der Auswahlliste scrollen, um zu sehen, wo der selektierte Wert zu finden ist. document.forms[0].textfeld.selectedIndex.focus() funktioniert ja leider nicht. 2. Ich möchte gerne, daß nach dem automatischen Erweitern des Inhalts der Textbox der Text ab der alten Cursorposition markiert ist. Gebe ich beispielsweise ein A ein, wird der Text automatisch auf Apfel erweitert. pfel soll jetzt markiert sein. Irgendwo habe ich mal ein Skript gefunden, daß mir in einer Textarea Text an die Cursorposition einfügt. Ich weiß leider nicht mehr wo, denke aber, daß das ein Teil der Lösung sein könnte. Ich könnte mir vorstellen, daß das irgendwie über document.forms[0].textbox.select() läuft, bin mir dabei aber nicht sicher, weil dies laut SelfHTML den kompletten Text markieren würde. Die einzige Anforderung an das Skript ist, daß es mit dem Internet Explorer 6 läuft. Ich bin Euch echt für jede Hilfe dankbar. Auch Teillösungen und Denkansätze sind willkommen. <html> <head> <script> oldlength = 0; oldselecttext = ""; werte = new Array("","Apfel","Apfelbaum","Apfelkompott","Birne","Birnenbaum","Birnenkompott"); function check() { text = document.forms[0].textbox.value; if(oldlength < text.length || (oldlength > text.length && oldselecttext.length > 1)) { oldselecttext = document.selection.createRange().text; for(i=0;i<werte.length;i++) { if(werte.substr(0,text.length).toLowerCase() == text.toLowerCase()) { laenge=text.length; document.forms[0].selectbox.value = werte; document.forms[0].textbox.value = werte; oldlength = werte.length; break; } } } else { oldselecttext = document.selection.createRange().text; oldlength = text.length; if (text.length == 0) { document.forms[0].selectbox.value = ""; } } } function selectboxonoff() { switch(document.forms[0].selectbox.style.visibility) { case "hidden": document.forms[0].selectbox.style.visibility = "visible"; document.forms[0].selectbox.focus(); break; case "visible": document.forms[0].selectbox.style.visibility = "hidden"; document.forms[0].textbox.focus(); break; } } function changetext() { document.forms[0].textbox.value=document.forms[0].selectbox.value; oldlength = document.forms[0].textbox.value.length; document.forms[0].selectbox.style.visibility = "hidden"; document.forms[0].textbox.focus(); } </script> </head> <body onClick="document.forms[0].selectbox.visibility='hidden';" onLoad="document.forms[0].textbox.focus();"> <form> <input type=text name=textbox onKeyup="check()" style="position:absolute;left:50px;top:50px;width:250px;"> <a href="javascript:selectboxonoff();" style="position:absolute;left:305px;top:50px;text-decoration:none;">Y</a> <br><br> <select name=selectbox size=5 onClick="changetext()" style="position:absolute;left:50px;top:50px;visibility:hidden;width:270px;" onBlur="document.forms[0].selectbox.style.visibility='hidden';document.forms[0].textbox.focus();"> <script> for(i=0;i<werte.length;i++) { document.write("<option value='" + werte + "'>" + werte + "</option>"); } </script> </select> </form> </body> </html>
  5. Ich habe Dir hier mal ein Grundskript (gaestebuch.php) zusammengebastelt. Beachte dabei die Berechtigungen im Verzeichnis. showgb liest das Directory ein und nimmt sich alle Dateien, die gb_ im Namen enthalten und gibt deren Inhalt aus. Durch die Verwendung des Timestamps im Namen sind diese auch chronologisch geordnet. Anschließend wird das Eingabeformular ausgegeben (writeform). Wird das Formular ausgefüllt und abgeschickt, wird die Seite aufgerufen und creategb vor den beiden anderen Funktionen ausgeführt und ein neuer Eintrag gespeichert. <? function showgb() { $handle=opendir ('.'); while (false !== ($file = readdir ($handle))) { if(strstr($file,"gb_")) { $fp=file($file); echo "<b>".date("d.m.Y H:i",filemtime($file))."</b> (".trim($fp[0]).")<br>"; for($i=1;$i<count($fp);$i++) { echo $fp[$i]."<br>"; } echo "<br>"; } } closedir($handle); } function creategb($user,$text) { $zeit=explode(" ",microtime()); $filename="gb_".$zeit[1]; $fp=fopen($filename,"w"); fwrite($fp,$user."\n".$text); fclose($fp); } function writeform() { echo "<form action='gaestebuch.php' method=post>"; echo "<input type=text name=user value='Ihr Name'><br>"; echo "<textarea rows=5 name=text>Ihr Beitrag</textarea><br>"; echo "<input type=submit>"; echo "</form>"; } if(isset($user) AND isset($text)) { creategb($user,$text); } showgb(); writeform(); ?>
  6. Das sieht ja ganz nach Minesweeper aus (automatisches Freilegen von nicht belegten Feldern).
  7. Rohde

    Druckansicht

    Eine freie Klasse zur PDF-Erzeugung wäre beispielsweise FPDF.
  8. Ich sehe das wie Patrick K. Die Sterne sagen gar nichts aus. Sterne für viele Beiträge sagen nichts über deren Qualität aus. Aber die Bewertung der Qualität der einzelnen Beiträge stelle ich mir kompliziert vor. Zum einen kann es manche Beiträge (gerade in den fachlichen Boards) geben, deren Sinn man nicht versteht, weil man von der Thematik keine Ahnung hat (ergo: doofer Beitrag). Andererseits wäre es als Forenbenutzer einfach zu umständlich die Qualität der Beiträge zu beurteilen - völlig unabhängig vom gewählten Bewertungsweg. Das Bewerten würde nur den Lesefluß stören, so daß man es relativ schnell sein läßt. Eine andere Möglichkeit Sterne zu verteilen wäre nach der Dauer der Mitgliedschaft in diesem Forum. Das wäre wie im öffentlichen Dienst, wo man auch einfach mehr Geld bekommt, indem man älter wird (Dienstaltersstufe). Das würde aber auch nichts über die Qualität des Users aussagen. Mir fällt beim besten Willen kein Bewertungskriterium ein, wie man auf einfache Art und Weise eine der Qualität entsprechende Sternchenverteilung hinbekommt. Deshalb habe ich es mir gar nicht erst angewöhnt, darauf zu achten.
  9. Rohde

    overflow body js

    Du willst also die Scrollbars abschaltbar machen. Sie mal hier nach. Da habe ich ein entsprechendes Skript gepostet. Vielleicht hilft's Dir weiter.
  10. Rohde

    javascript abfrage

    <html> <head> <script> location.href="http://intranet.company.com"; </script> </head> <body> Bitte aktivieren Sie Javascript. </body> </html>
  11. Probier das mal: <html> <body id="seite" style="overflow:hidden;"> <script> function bar() { value=document.getElementById("seite").style.overflow; if(value=="hidden") { document.getElementById("seite").style.overflow="auto"; } else { document.getElementById("seite").style.overflow="hidden"; } } </script> <a href="javascript:bar();">Ein/Aus</a> </body> Hier muß jetzt ganz viel Inhalt rein. </html> Die einzige Möglichkeit zu scrollen ist jetzt noch, den Inhalt zu markieren und dabei die Maus nach unten zu ziehen.
  12. <? $string="A|B|C|D|E|F"; $f=explode("|",$string); for($i=0;$i<count($f);$i++) { $newstring.=$f[$i]; if($i<count($f)-1) { switch ($i) { case 2: $newstring.="<br>"; break; default: $newstring.="|"; break; } } } echo $newstring; ?>
  13. Wenn Deine Excel-Tabelle keine Formeln enthält, sondern es sich nur um eine Tabelle mit statischen Daten handelt, speicherst Du Deine Excel-Datei im CSV-Format ab. Nennen wir sie einfach mal test.csv. Diese speicherst Du auf Deinem Webserver. Anschließend änderst Du die Zugriffsberechtigungen, so daß die Datei auch durch das unten abgebildete PHP-Skript geändert werden kann. Das Skript liest die test.csv ein und stellt mittels HTML-Formularfelder in einer Tabelle dar und hängt jeweils noch fünf Zeilen unten dran, so daß Du sie auch erweitern kannst. Willst Du eine Zeile löschen, machst Du die Felder einfach leer. Leere Zeilen werden durch das Skript ausgefiltert und nicht gespeichert. test.csv: Name,Vorname,Strasse,Telefon Wurst,Hans,Schulstr. 5,040/12345 Mustermann,Martin,Musterstr,089/54321 tabelle.php: <?php $datei="test.csv"; $trennzeichen=","; if(isset($feld)) { // Daten zum Speichern vorbereiten for($i=0;$i<count($feld);$i++) { for($t=0;$t<count($feld[$i]);$t++) { $zeile[$i].=$feld[$i][$t].$trennzeichen; } $zeile[$i]=substr($zeile[$i],0,strlen($zeile[$i])-1); } // Tabelle speichern, dabei leere Zeilen nicht speichern $fp = fopen ($datei, "w"); for($i=0;$i<count($zeile);$i++) { if(strlen(trim($zeile[$i])) != count($feld[0])-1) { fputs($fp,$zeile[$i]."\n"); } } fclose($fp); } // csv-Datei einlesen und in einem Array ablegen $zeile=file($datei); // Spaltenüberschriften ausgeben $ueberschrift=explode($trennzeichen,$zeile[0]); echo "<form action='".$PHP_SELF."' method='post'>\n<table border=1>\n<tr>\n"; for($i=0;$i<count($ueberschrift);$i++) { echo "<td><b>".$ueberschrift[$i]."</b><input type='hidden' name='feld[0][]' value='".$ueberschrift[$i]."'></td>\n"; } echo "</tr>\n"; // befüllte Tabellenzellen ausgeben for($i=1;$i<count($zeile);$i++) { echo "<tr>\n"; $feld=explode($trennzeichen,$zeile[$i]); for($t=0;$t<count($feld);$t++) { echo "<td><input type='text' name='feld[".$i."][]' value='".trim($feld[$t])."'></td>\n"; } echo"</tr>\n"; } // leere Tabellenzellen ausgeben, um die Tabelle erweitern zu können for($i=0;$i<5;$i++) { echo "<tr>\n"; for($t=0;$t<count($ueberschrift);$t++) { echo "<td><input type='text' name='feld[".(count($zeile)+$i)."][]'></td>\n"; } echo "</tr>\n"; } echo "<tr><td colspan='".count($ueberschrift)."' align='right'><input type='submit' value='Speichern'></td></tr>"; echo "</table>\n</form>"; ?>
  14. Ohne DHTML geht's selbstverständlich auch: <table border=1> <tr> <td width=100 height=100> <div style="overflow:auto;width:100%;height:100%"> Hier steht ganz viel Text, der auch noch gescrollt werden muß. Hier steht ganz viel Text, der auch noch gescrollt werden muß. Hier steht ganz viel Text, der auch noch gescrollt werden muß. Hier steht ganz viel Text, der auch noch gescrollt werden muß. </div> </td> </tr> </table> IE6 okay, Mozilla 1.41a okay, Netscape 4.6 kann's nicht
  15. Rohde

    Formular

    Stimmt. Dazu bedienst Du Dich einer Programmiersprache, die das Formular auswerten und das Ergebnis der Auswertung auch entsprechend weiterleiten kann (z.B. Generierung einer E-Mail und/oder Eintrag in eine Datenbank). PHP oder Perl wären beispielsweise solche Sprachen.
  16. http://www.phpguru.org/dyncalendar.html
  17. Rohde

    Link auf Dateien

    Wo ist eigentlich der Unterschied zwischen jemandem, der den Acrobat Reader installiert hat und jemand, der das nicht hat? Ich meine jetzt nicht die Tatsache der (Nicht-)Installation der Software. In beiden Fällen wird das Dokument runtergeladen. Bei dem einen wird es direkt angezeigt. Wenn jemand den Reader nicht installiert hat, kann es doch durchaus möglich sein, daß er pdf-Dokumente auf andere Art und Weise lesen kann. Ich denke da vor allem an Leute, die die Datei vorher in eine Textdatei konvertieren, um sie sich dann anzusehen bzw wie z.B. bei Sehbehinderten Leuten vorlesen lassen, deren Screenreader evtl. Probleme mit pdf-Dokumenten haben.
  18. Ich verstehe zwar den Zusammenhang zwischen Deinen beiden Postings nicht, aber bei mir war es damals so, daß ich die Prüfungsaufsicht (war auch im Prüfungsausschuss) gefragt habe, welche Sprachen denn zugelassen seien. Als Antwort habe ich die Frage "Welche wollen Sie denn benutzen?" erhalten. Ich glaube, ich habe damals "Visual Basic" genannt, mit der die Prüfungsaufsicht auch einverstanden war. Ich vermute mal, daß die zugelassenen Programmiersprachen von Prüfungsausschuss zu Prüfungsausschuss differieren. Je nachdem, welche Sprachen dort gelesen werden können, scheinen andere "zugelassen" zu sein. Wenn man sich in den Ausbildungsrahmenplänen zumindest auf eine gemeinsame Sprache für alle einigen könnte, müßte man in den Prüfungen nicht mit solchen schwammigen Aussagen kommen. Nicht auszudenken, was wohl passiert wäre, wenn ich behauptet hätte, nur THP* halbwegs gut zu können. * THP heißt "The Harper Programmer" und kam so um 1995 mal als Shareware-Sprache auf irgendeiner Begleitdiskette eines Buches auf den Markt.
  19. Am elegantesten ist es natürlich, die Template-Klasse der phplib zu benutzen.
  20. Mit dem DHTML-Control von MS wäre es auch gegangen, aber IE only.
  21. Rohde

    onClick() ???

    Das hier dürfte das sein, was Du suchst. IE und Mozilla 1.3 haben damit keine Probleme. Andere Browser hatte ich gerade nicht zur Hand. <style> td{width:50px;height:50px;background-color:#ffffff;} </style> <script> aktuell=0; function rot(id) { if(aktuell!=id) { document.getElementById(id).style.backgroundColor="#ff0000"; } } function weiss(id) { if(aktuell!=id) { document.getElementById(id).style.backgroundColor="#ffffff"; } } function tr(id) { if(aktuell!=0) { document.getElementById(aktuell).style.backgroundColor="#ffffff"; } document.getElementById(id).style.backgroundColor="#ff0000"; aktuell=id; } </script> <table border=1> <tr> <td id=1 onMouseOver="rot('1');" onMouseOut="weiss('1');" onClick="tr('1');"><br></td> <td id=2 onMouseOver="rot('2');" onMouseOut="weiss('2');" onClick="tr('2');"><br></td> </tr> <tr> <td id=3 onMouseOver="rot('3');" onMouseOut="weiss('3');" onClick="tr('3');"><br></td> <td id=4 onMouseOver="rot('4');" onMouseOut="weiss('4');" onClick="tr('4');"><br></td> </tr> </table>
  22. Das stimmt so natürlich nicht ganz. Support für die PHP/MySQL-Kombination zu bekommen ist überhaupt kein Problem. Das ganze Netz ist voll davon. Was viel problematischer ist, ist jemanden rechtlich für Fehler belangen zu können, so daß man als Dienstleister, der dem Kunden diese Kombination verkauft hat, im Tor steht. Wir selbst arbeiten übrigens mit Gauss VIP Enterprise, was aber preislich deutlich über dem von nager angepeilten Spielraum liegen dürfte.
  23. Rohde

    Cebit 2003

    Ich gehe dieses Jahr nicht hin. Früher, als Commodore noch den größten Stand hatte, hat es noch Spaß gemacht. Letztes Jahr bin ich nur hin, weil ich eine Freikarte irgendwo abstauben konnte. Vorher habe ich mir einen Plan gemacht, was ich sehen wollte und habe den dann abgeklappert. An den besagten Ständen gab es dann aber leider nicht allzu viel zu sehen bzw. in Erfahrung zu bringen, so daß ich noch einen kleinen Schlenker zu unserem eigenen Stand machen konnte, um den Kollegen noch viel Spaß zu wünschen. Nach nur einer Stunde war ich vom Messegelände wieder runter und bin zur Arbeit gegangen. Die Enttäuschung saß. Was ich schade finde, ist, daß sich die Messeleitung in den letzten Jahren ziemlich viel Mühe damit gibt, bestimmte Produktgruppen nicht dabeizuhaben. Wenn ich mich richtig erinner, wurden erst die Hersteller von Joysticks vergrault. Später hat es dann auch Produkte von Creative erwischt. Alles Sachen, die der normale Konsument vielleicht interessant finden könnte. Aber normale Konsumenten sind dort nicht gerne gesehen (mein Eindruck).
  24. PHP bietet auch noch die Funktion strip_tags(), die alle HTML-Tags rauswirft.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...