+ Antworten
Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 20 von 31

[HTML / Javascript] JS funktioniert nicht richtig - falsch eingebunden ?

Eine Diskussion über [HTML / Javascript] JS funktioniert nicht richtig - falsch eingebunden ? im Forum Hausaufgaben. Teil des Reallife-Bereichs; Hab hier ein kleines "Projekt" auf das es bald Noten gibt - und wir sollen uns den Kram selbst beibringen ...

  1. #1
    Darth Plüsch !
    Avatar von mope7
    Registriert seit
    20.05.2002
    Ort
    Berlin
    Alter
    31
    Beiträge
    24.868
    Name
    Mike
    Nick
    atombrot

    [HTML / Javascript] JS funktioniert nicht richtig - falsch eingebunden ?



    Hab hier ein kleines "Projekt" auf das es bald Noten gibt - und wir sollen uns den Kram selbst beibringen (ja, klingt bescheuert, ist aber tatsächlich so). Und zwar sollen wir mit HTML ne Abfragemaske für nen Personalausweis erstellen. Bin schon recht weit, hatte vorhin ein PRob mit dem Kalender, geht jetzt aber.

    edit2: neues Problem !

    Also, wie bekomme ich es hin, dass die Radio Buttons (Zeile 66) denn auch angezeigt werden ? Bzw, dass die Beschriftung angezeigt wird.
    sobald ich die in die Tabelle stecke bekomme ich nur noch die Buttons, nicht aber die Beschriftung angezeigt :/

    Angehängte Dateien Angehängte Dateien
    Geändert von mope7 (14.06.2011 um 00:28 Uhr)
    - Knippsi Klick, Flickr. -
    - Mein Zockprojekt ! Let's play Steamsammlung - begleitet mich durch meine Games !

  2. #2
    Oberstabsfeldwebel
    Avatar von .deviant
    Registriert seit
    01.06.2004
    Alter
    29
    Beiträge
    5.663
    Hm also bei mir gehts
    The poetry that comes from the squarin' off between
    And the circling is worth it, finding beauty in the dissonance

  3. #3
    Darth Plüsch !
    Avatar von mope7
    Registriert seit
    20.05.2002
    Ort
    Berlin
    Alter
    31
    Beiträge
    24.868
    Name
    Mike
    Nick
    atombrot



    verflucht O____o

    ich habs mit IE, Opera, Chrome und FF4 ausprobiert. Überall schauts so aus:


    Miniaturansichten angehängter Grafiken Miniaturansichten angehängter Grafiken Klicke auf die Grafik für eine größere Ansicht 

Name:	formular.JPG 
Hits:	3 
Größe:	25,8 KB 
ID:	76812  
    - Knippsi Klick, Flickr. -
    - Mein Zockprojekt ! Let's play Steamsammlung - begleitet mich durch meine Games !

  4. #4
    Stabsfeldwebel
    Avatar von Wilma
    Registriert seit
    02.02.2007
    Ort
    Ruhrpott
    Alter
    37
    Beiträge
    4.056
    Name
    Michael
    Nick
    dp.Mordred
    Clans
    dp.
    strg+f5 zum neuladen gedrückt?^^
    www.die-philosoffen.com
    Wir zocken [ZH] [SC2] [EVE] [BF:BC2]
    Mindestalter: 21 Jahre

  5. #5
    Oberstabsfeldwebel
    Avatar von .deviant
    Registriert seit
    01.06.2004
    Alter
    29
    Beiträge
    5.663
    Also ich habs auch im FF4 gemacht..Du musst dringend an deinen Einrückungen arbeiten. Brrr.

    Code:
    <html>
    <head>
    <title>Personalausweiß beantragen</title>
    <script language="JavaScript" src="calendar_eu.js"></script> 
    <link rel="stylesheet" href="calendar.css"> 
    </head>
    <body>
    <h1>Formular f&uuml;r die Beantragung eines Personalausweises</h1>
    <form action="seite2perso.php" method="post" name="textformular" cellspacing="20">
    <table border="0" cellpadding="5" cellspacing="0" bgcolor="#E0E0E0">
    	<tr>
    		<td align="right"> Name: </td>
    		<td><INPUT type="text" 	name="nachname" size="30" maxlenght="30"> </td>
    	</tr>
    	
    	<tr>
    		<td align="right"> Vorname: </td>
    		<td> 	<INPUT type="text" 	name="vorname" size="30" maxlenght="30"> </td>
    	</tr>
    	
    	<tr>
    		<td align="right"> Anschrift: </td>
    		<td>	<textarea cols="25" rows="3" name="anschrift"> </textarea> </td>
    	</tr>
    	
    	<tr>
    		<td align="right"> Geburtstag: </td>
    		<td><input type="text" name="geburtstag" size="30" maxlenght="30" /> 
    			<script language="JavaScript"> 
    					
    					new tcal ({
    					// form name
    					'formname': 'textformular',
    					// input name
    					'controlname': 'geburtstag'
    					});
    			</script> 
    	</tr>
    	<tr>
    		<td align="right"> Geburtsort: </td>
    		<td> 	<INPUT type="text" 	name="geburtsort" size="30" maxlenght="30"> </td>
    	</tr>
    	<tr>
    		<td align="right"> Nationalität: </td>
    		<td> 	<select name="national" size="1">				
    				
    				<option selected>deutsch</option>
    				<option>englisch</option>
    				<option>polnisch</option>
    				<option>französisch</option>
    				<option>italienisch</option>
    				<option>niederländisch</option>
    				<option>techisch</option>
    				
    			</select> 
    		</td>
    	</tr>
    	<tr>
    		<td>Größe:*</td><td><INPUT type="text" 	name="groesse"> </td>
    	</tr>
    	<tr>
    		<td>Augenfarbe:* </td> <td><INPUT type="text" 	name="augen"> </td>
    	</tr>
    	<tr>
    		<td> Geschlecht:*</td>
    		<td>
    				<input type="radio" name="ges" value="männlich"> männlich<br>
    				<input type="radio" name="ges" value="weiblich"> weiblich
    		</td>
    	</tr>
    	<tr>
    		<td>	<input type="reset" value=" Abbrechen"> </td>
    		<td>
    				<input type="Submit" value="Absenden"> </td>
    	</tr>
    </table>
    
    </form>
    
    </html>
    The poetry that comes from the squarin' off between
    And the circling is worth it, finding beauty in the dissonance

  6. #6
    Man merkt massiv, dass euch keiner gezeigt hat, wie die Spezifikationen von HTML lauten und wie man diese sinnvoll einsetzt.

    Zunächst fehlt die Dokumenttypdefinition. Ohne diese kann dein Browser nur raten, welche Spezifikation von HTML verwendet werden soll, was zu den unterschiedlichsten Fehler führen kann und wird.

    Du könntest dich entweder direkt auf HTML 5 stürzen, was sicherlich sinnvoll ist wenn du es derzeit lernst und in Zukunft intensiver nutzen möchtst, dann lauet diese:
    1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    Beachte jedoch, dass HTML 5 noch kein Standard ist.

    Ansonsten würde ich XHTML 1.0 Transitional empfehlen
    1. <!DOCTYPE HTML>

    Eineliste der empfohlenen Dokumenttypdefinitionen findest du hier: http://www.w3.org/QA/2002/04/valid-dtd-list.html. Die Spezifiaktionen selbst findest du hier: http://www.w3.org/standards/techs/html

    Neben der neueren Möglichkeiten die HTML 5 bietet ist schon die kürzere Dokumenttypdefinition von Vorteil, da jedes weitere Zeichen, welches übertragen werden muss (auch Kommentare), die Aufrufgeschwindigkeit der Webseite verringern, welches direkten Einfluss auf die Geschwindigkeit hat, mir der Spider oder Crawler von Suchmaschinen deine Seite durchstöbern, aber auch das Wohlempfinden der Nutzer beeinträchtigt, denn wer nutzt schon gerne eine langsame Seite.

    Je nachdem wofür du dich entscheidest kann man nun weiter fortfahren und raten, wie du es schreiben solltest.

    Im Allgemeinen sei jedoch gesagt, dass Tabellen, also Strukturen der Art:
    1. <table border="0" cellpadding="5" cellspacing="0" bgcolor="#E0E0E0">
    2. <tr>
    3. <td align="right"> Name: </td>
    4. <td><INPUT type="text" name="nachname" size="30" maxlenght="30"> </td>
    5. </tr>
    6. <tr>
    7. <td align="right"> Vorname: </td>
    8. <td> <INPUT type="text" name="vorname" size="30" maxlenght="30"> </td>
    9. </tr>

    Nur für Tabellen gedacht sind und es somit ein semantischer Fehler ist sie zu Platzierung von anderen Elementen zu verwenden, wenn es sich nicht um tabellarische Daten handelt.

    Des Weiteren ist etwas wie
    1. <td align="right"> Name: </td>
    für die meisten Dokumenttypdefinitionen inkorrekt, mir ist derzeit auch keiner bekannt, welcher dies definiert.

    Der Gedanke dahinter ist, dass HTML als Auszeichnungssprache ähnlich wie XML lediglich Bereiche defniert. Ein großer Unterschied ist dabei sicherlich, dass einie Bestandteile von HTML vorformatiert sind, wie z.B.
    1. <b>Name:</b>
    Welches den Text fett anzeigt. Wenn man nun jedoch nachträglich dieses Verhalten anpassen möchte, so gibt es dazu die Cascading Style Sheets (kurz CSS), welche dies definieren.


    Kurz gesagt:
    HTML dient dazu Bereiche festzulegen und besitzt für kleinere Aufgaben vordefinierte Anweisungen.
    CSS dient dazu die Bereiche zu designen, also etwas zu zentrieren, farblich zu veränden, usw.
    JS dient dazu eine HTML-Seite dynamsich zu gestallten.



    Zuletzt möchte ich dir folgendes Beispiel an Herz legen, um ein gutes Formular zu schaffen:
    1.  
    2. <!DOCTYPE html>
    3. <title>Formular</title>
    4. <meta charset="UTF-8">
    5. <style type="text/css">
    6. fieldset
    7. {
    8. width: 300px;
    9. }
    10.  
    11. input, select
    12. {
    13. float: right;
    14. }
    15.  
    16. label
    17. {
    18. display: block;
    19. clear: both;
    20. }
    21. </style>
    22. </head>
    23. <form action="#" method="post">
    24. <legend>Einfaches Formular</legend>
    25. <label>Vorname: <input type="text" name="vorname" /></label>
    26. <label>Nachname: <input type="text" name="nachname" /></label>
    27. </form>
    28. </body>
    29. </html>
    30.  
    Näheres zu Formularen findest du hier: http://www.w3.org/TR/html5/forms.html
    Man sollte jedoch noch sagen, dass man die Cascading Style Sheets in eine eigene Datei einfügen und über
    1. <link rel="stylesheet" href="main.css" type="text/css" />
    einbinden sollte.

  7. #7
    Darth Plüsch !
    Avatar von mope7
    Registriert seit
    20.05.2002
    Ort
    Berlin
    Alter
    31
    Beiträge
    24.868
    Name
    Mike
    Nick
    atombrot


    jaja, ich hab gestern die ganze Nacht dran gehockt, es sieht mittlerweile deutlich übersichtlicher aus als das was ich hochgeladen hab ... aber immernoch grußelig

    @Osbes: danke schon mal für den ausführlichen Beitrag. Wie gesagt, wir werden vollkommen allein gelassen. Das mit den Tabellen zur "Platzierung" hab ich aus Selfhtml übernommen. Ich werd mich bemühen

    Das ganze ist irgendwie so sinnlos... Beispiel für die Benotung: "Implentieren sie die Funktion "Suche""... (in einem XML Dokument). Das war es. Nicht was wir suchen sollen, nicht was ausgegeben werden soll... also noch mal nachgefragt: "Ja, einfach ein Feld, welches die XML nach dem eingegebenen Begriff durchsucht".
    Hab ich gebastelt - wird gesucht und angezeigt, sonst nix. Krieg ich mecker: "jaaaa, neeeee, da muss dann auch das und das und das"...

    es ist ein Krampf :/


    aber nochmal Danke an alle, ich klemm mich dahinter

    - Knippsi Klick, Flickr. -
    - Mein Zockprojekt ! Let's play Steamsammlung - begleitet mich durch meine Games !

  8. #8
    Big & Tasty
    Avatar von baracuda
    Registriert seit
    10.11.2007
    Ort
    Köln
    Alter
    28
    Beiträge
    3.692
    Name
    Kevin
    Vllt hättest du ihm deinen Code noch kommentieren sollen damit er mit den CSS Angaben was anfangen kann @Osbes.
    Es ist imo etwas schwierig sich mit CSS Angaben auseinander zu setzen wenn man sich damit nich auskennt, besonders mit dem float hab ich selbst jetzt noch Probleme zu finden wie und wo es umgesetzt wird.
    Problem bei diesem Code wird sein, dass jedes fieldset, jedes input und select und jedes label diese Eigenschaften übernimmt und nicht nur die des jeweiligen Formulars.
    Vllt wäre es anders besser:
    Code:
    fieldset{ 
    width: 300px;//definiert die Breite des Fieldset Objekts
    }
    
    fieldset input{ //definiert Angaben zu Inputfeldern innerhalb eines fieldset Objektes
    float: right; //kann man sich herleiten, lässt das Objekt einfach rechts "fließen" Objekte danach fließen links um das Objekt herum.
    }
    
    fieldset label{ //definiert Angaben zu jedem label in einem fieldset Objekt
    clear: both; //löscht das floating auf beiden Seiten, das Objekt wird unter den floatenden Objekten "eingerückt" 
    display: block; //Stellt das label Objekt als Block dar, es wird nicht wie Text z.B. inline eingebaut, wie es bsp. bei Text der Fall wäre.
    }
    Osbes korrigiere die Kommentare wenn sie falsch oder unverständlich sind

  9. #9
    Darth Plüsch !
    Avatar von mope7
    Registriert seit
    20.05.2002
    Ort
    Berlin
    Alter
    31
    Beiträge
    24.868
    Name
    Mike
    Nick
    atombrot
    edit: ich schreib mal in normaler Farbe...

    hihi, ja da hackt es gerade zumindest ein bisschen. Ich hätte die fieldsets gerne in einem großen fieldset drin. natürlich überlappen die sich dann. Hab auch schon da oben mit dem "width" rumgespielt, habs auch versucht in die einzelnen fieldsets zu schreiben, aber kommt nix bei rund :/
    edit3: so, das mit der weite haut nun auch hin, bleiben nur noch die dropdown felder

    Code:
    <!DOCTYPE HTML>
    <html>
    <head>
     <title>Formular</title>
     <meta charset="UTF-8">
     <script language="JavaScript" src="calendar_eu.js"></script> <!-- Javascript einbinden -->
    <link rel="stylesheet" href="calendar.css">  <!-- Javascript einbinden -->
    <style type="text/css">
    
     
    input, select
    {
        float:     right;
    	background-color: #E0E0E0;
    }
     
    label
    {
        display:  block;
        clear:    both;
    }
    
    </style>
    </head>
    <body>
    	<form action="daten_uebermittelt.php" method="post" name="textformular" >
    	<fieldset style="width: 40%">
    		<legend><b>Antragsformular</b></legend>
    	<fieldset style="width: 90%">
    		<legend><b>Name</b></legend>
    		<label>Vorname:  <input type="text" name="vorname" /></label>
    		<label>Nachname: <input type="text" name="nachname" /></label>
    	</fieldset>
    <br>
    	<fieldset style="width: 90%">
    		<legend><b>Anschrift</b></legend>
    		<label>Straße / Nr.: <input type="text" name="anschrift" /></label>
    		<label>Plz: <input type="text" name="plz" /></label>
    		<label>Ort: <input type="text" name="ort" /></label>
    	</fieldset>
    <br>
    	<fieldset style="width: 90%">
    		<label>Geburtsdatum: <input type="text" name="geburtsdatum"  />
    			<script language="JavaScript"> 
    					
    					new tcal ({
    					// form name
    					'formname': 'textformular',
    					// input name
    					'controlname': 'geburtsdatum'
    					});
    			</script> </label>
    		<label>Geburtsort: <input type="text" name="geburtsort" /></label>
    		<label for="national">Nationalität:</label> 
    			<select name="national" id="national">				
    				<option selected>deutsch</option>
    				<option>englisch</option>
    				<option>polnisch</option>
    				<option>französisch</option>
    				<option>italienisch</option>
    				<option>niederländisch</option>
    				<option>techisch</option>	
    			</select>		
    	</fieldset>
    <br>
    	<fieldset style="width: 90%">
    		<label>Größe (in cm): <input type="text" name="groesse" /></label>
    		<label>Augenfarbe: <input type="text" name="augenfarbe" /></label>
    		<label for="geschlecht">Geschlecht:</label> 
    			<select name="geschlecht" id="geschlecht">				
    				<option selected>weiblich</option>
    				<option>männlich</option>				
    			</select>	
    	</fieldset>
    <br>	
    	<fieldset style="width: 90%">
    	<legend><b>Formular</b></legend>
    	<input type=submit value="Absenden">
    	<input type=reset value="Abbrechen">
    	</fieldset>
    	</fieldset>
     
     </form>
    </body>
    </html>

    Auch die Dropdown Felder wollen noch nicht wie ich will

    auf der Seite hier schau ich mich übrigens gerade um

    http://reference.sitepoint.com/html/
    Geändert von mope7 (14.06.2011 um 15:04 Uhr)
    - Knippsi Klick, Flickr. -
    - Mein Zockprojekt ! Let's play Steamsammlung - begleitet mich durch meine Games !

  10. #10
    Wie wäre der folgende Vorschlag?

    1. <!DOCTYPE html>
    2. <title>Formular</title>
    3. <meta charset="UTF-8">
    4. <style type="text/css">
    5. *
    6. {
    7. margin: 0;
    8. padding: 0;
    9. }
    10.  
    11. form > fieldset
    12. {
    13. width: 350px;
    14. }
    15.  
    16. fieldset
    17. {
    18. margin: 5px;
    19. padding: 5px;
    20. }
    21.  
    22. legend
    23. {
    24. font-weight: bold;
    25. margin: 0 5px;
    26. padding: 0 3px;
    27. }
    28.  
    29. input,
    30. select
    31. {
    32. float: right;
    33. min-width: 150px;
    34. background-color: #E0E0E0;
    35. color: black;
    36. border: 1px solid black;
    37. padding: 2px;
    38. margin-left: 10px;
    39. }
    40.  
    41. input:focus,
    42. select:focus
    43. {
    44. background-color: yellow;
    45. color: black;
    46. }
    47.  
    48. label
    49. {
    50. display: block;
    51. clear: both;
    52. margin: 5px;
    53. }
    54. </style>
    55. </head>
    56. <form action="daten_uebermittelt.php" method="post">
    57. <legend>Antragsformular</legend>
    58. <legend>Name</legend>
    59. <label>Vorname <input type="text" name="vorname"></label>
    60. <label>Nachname <input type="text" name="nachname"></label>
    61. <legend> Anschrift</legend>
    62. <label>Straße / Nr. <input type="text" name="anschrift"></label>
    63. <label>Plz <input type="text" name="plz"></label>
    64. <label>Ort <input type="text" name="ort"></label>
    65. <label>Geburtsdatum <input type="text" name="geburtsdatum" ></label>
    66. <label>Geburtsort <input type="text" name="geburtsort"></label>
    67. <label>Nationalität
    68. <select name="national">
    69. <option selected>deutsch</option>
    70. <option>englisch</option>
    71. <option>polnisch</option>
    72. <option>französisch</option>
    73. <option>italienisch</option>
    74. <option>niederländisch</option>
    75. <option>techisch</option>
    76. </select>
    77. </label>
    78. <label>Größe (in cm): <input type="text" name="groesse"></label>
    79. <label>Augenfarbe: <input type="text" name="augenfarbe"></label>
    80. <label>Geschlecht:
    81. <select name="geschlecht" >
    82. <option selected>weiblich</option>
    83. <option>männlich</option>
    84. </select>
    85. </label>
    86. <input type="submit">
    87. <input type="reset">
    88. </form>
    89. </body>
    90. </html>

    Du kannst dabei die Auswahlfelder ebenso innerhalb des Labels definieren.

    @baracuda
    Das wäre sicherlich hilfreich gewesen, jedoch ist es immer schwer alles zu erklären, dafür gibt es zu viel zu lernen, als dass man es in einen Beitrag pressen kann.

    Des Weiteren sollte man auf Kommentare innerhalb von HTML, CSS oder JS wenn möglich verzichten, da dieswieder Übertragungszeit kostet. Sie werden zwar nicht dargestellt, jedoch müssen sie übertragen werden.
    Aber ich stimme dir zu, dass es zum Verstehen hilfreich gewesen wäre.

    Bei dir ist nur
    1. clear: both; //löscht das floating auf beiden Seiten, das Objekt wird unter den floatenden Objekten "eingerückt"
    unvollständig. Gerade in diesem Fall dient es dazu, dass die Höhe des Labels auf die gesamte Höhe des Inhaltes angepasst wird.
    Im Übrigen ist nur
    1.  
    2. /* CSS Kommentar */
    3.  
    der korrekte Syntax für einen Kommentar in CSS.

  11. #11
    Darth Plüsch !
    Avatar von mope7
    Registriert seit
    20.05.2002
    Ort
    Berlin
    Alter
    31
    Beiträge
    24.868
    Name
    Mike
    Nick
    atombrot
    Super !

    vielen lieben Dank.

    Ich wurschtel mich zwar durch indem ich jede Anweisung einzeln übernehme und verändere um zu sehen was die tut, aber das hilft mir ungemein.

    Danke

    Ich deeeenke, das war es dann fürs erste.
    - Knippsi Klick, Flickr. -
    - Mein Zockprojekt ! Let's play Steamsammlung - begleitet mich durch meine Games !

  12. #12
    Falls du noch Zeit hast würde ich dir für die Abfrage des Datums folgendes ans Herz legen:
    http://jqueryui.com/demos/datepicker/

    Des Weiteren wäre auch dies im Zusammenhang mit Javascript und einer kurzen Ladezeit wichtig:
    http://blogs.sitepoint.com/non-blocking-async-defer/

    Falls du dazu noch Fragen hast, frag' einfach!

  13. #13
    Darth Plüsch !
    Avatar von mope7
    Registriert seit
    20.05.2002
    Ort
    Berlin
    Alter
    31
    Beiträge
    24.868
    Name
    Mike
    Nick
    atombrot
    datepicker hab ich integriert, das ging super einfach und sieht toll aus.

    und ich hab nun das nächste Problem

    Code:
         <div id="Inhalt">
        <h2>Ihre Daten wurden wie folgt übermittelt:</h2>
    	<br>
        <br>
    	<?php 
    //Bildschirmausgabe
    echo "Nachname		: ".$_POST['nachname']."<br />\n";
    echo "Vorname		: ".$_POST['vorname']."<br />\n";
    echo "Anschrift		: ".$_POST['anschrift']."<br />\n";
    echo "PLZ			: ".$_POST['plz']."<br />\n";
    echo "Ort			: ".$_POST['ort']."<br />\n";
    echo "Geburtsdatum	: ".$_POST['geburtsdatum']."<br />\n";
    echo "Geburtsort	: ".$_POST['geburtsort']."<br />\n";
    echo "Nationalität	: ".$_POST['national']."<br />\n";
    echo "Größe			: ".$_POST['groesse']."cm"."<br />\n";
    echo "Augenfarbe	: ".$_POST['augenfarbe']."<br />\n";
    echo "Geschlecht	: ".$_POST['geschlecht']."<br />\n";
    //Initialisierung
    $nachname=$_POST['nachname'];
    $vorname=$_POST['vorname'];
    $anschrift=$_POST['anschrift'];
    $plz=$_POST['plz'];
    $ort=$_POST['ort'];
    $geburtsdatum=$_POST['geburtsdatum'];
    $geburtsort=$_POST['geburtsort'];
    $groesse=$_POST['groesse'];
    $augenfarbe=$_POST['augenfarbe'];
    $geschlecht=$_POST['geschlecht'];
    
    
    
    //Ausgabe in Textdatei - \r\n für Zeilenumbruch. 
    $ausgabe=$nachname. ", ". $vorname."\r\n". $anschrift."\r\n". $plz."\r\n". $ort."\r\n". $geburtsdatum."\r\n". $geburtsort."\r\n". $groesse."\r\n". $augenfarbe."\r\n". $geschlecht."\r\n"."\r\n";
    $datei=fopen("datensatz.txt","a"); //a für mehrer Datensätze, w für überschreiben - ausgabe in datensatz.txt
    $output=fwrite($datei,$ausgabe); 
    fclose($datei); 
    
    // Ausgabe in XML Datei. Neue Datensätze als Child von IDEM
    
    $xml = simplexml_load_file("daten.xml");
    
    $idem = $xml->addChild("IDEM");
    $idem->addChild("VORNAME", "$_POST[vorname]");
    $idem->addChild("NACHNAME", "$_POST[nachname]");
    $idem->addChild("ANSCHRIFT", "$_POST[anschrift]");
    $idem->addChild("PLZ", "$_POST[plz]");
    $idem->addChild("ORT", "$_POST[ort]");
    $idem->addChild("GEBURTSDATUM", "$_POST[geburtsdatum]");
    $idem->addChild("GEBURTSORT", "$_POST[geburtsort]");
    $idem->addChild("NATIONALITÄT", "$_POST[national]");
    $idem->addChild("GROESSE", "$_POST[groesse]");
    $idem->addChild("AUGENFARBE", "$_POST[augenfarbe]");
    $idem->addChild("GESCHLECHT", "$_POST[geschlecht]");
    
    $handle = fopen("daten.xml", "wb"); 
    fwrite($handle, $xml->asXML());
    fclose($handle);
    
    ?>
    Code:
    <ROOT>
      <IDEM>
       <VORNAME>Max</VORNAME>
       <NACHNAME>Mustermann</NACHNAME>
       <ANSCHRIFT>Musterstraße15</ANSCHRIFT>
       <PLZ>12345</PLZ>
       <ORT>Musterhausen</ORT>
       <GEBURTSDATUM>06/15/2011</GEBURTSDATUM>
       <GEBURTSORT>Musterstadt</GEBURTSORT>
       <NATIONALITÄT>deutsch</NATIONALITÄT>
       <GROESSE>167</GROESSE>
       <AUGENFARBE>blau</AUGENFARBE>
       <GESCHLECHT>männlich</GESCHLECHT>
      </IDEM>
      <IDEM>
       <VORNAME>Maria</VORNAME>
       <NACHNAME>Musterfrau</NACHNAME>
       <ANSCHRIFT>Musterallee 17</ANSCHRIFT>
       <PLZ>54321</PLZ>
       <ORT>Musterhafen</ORT>
       <GEBURTSDATUM>06/02/2011</GEBURTSDATUM>
       <GEBURTSORT>Musterheim</GEBURTSORT>
       <NATIONALITÄT>italienisch</NATIONALITÄT>
       <GROESSE>170</GROESSE>
       <AUGENFARBE>grün</AUGENFARBE>
       <GESCHLECHT>weiblich</GESCHLECHT>
      </IDEM>
    </ROOT>

    mit dem ersten Schnippsel schreib ich die Daten aus den Formularfeldern in eine txt Datei und eine xml Datei.

    Jetzt brauch ich irgendeine Funktion, mit der ich nach diesen Datensätzen suchen kann. Also, wenn ich z.B. nur "Hans" eingebe, dann soll er mir den kompletten node von Hans zurück geben.

    Ich denke (?) ich brauch dafür auf jeden Fall die xml Datei und muss den nodes noch eine ID zuweisen. Aber wie mache ich es, dass sich diese automatisch inkrementiert ? ... bzw, geht das überhaupt ?
    Hab schon so vieles gelesen und einiges ausprobiert, aber nüscht hilft
    - Knippsi Klick, Flickr. -
    - Mein Zockprojekt ! Let's play Steamsammlung - begleitet mich durch meine Games !

  14. #14
    Big & Tasty
    Avatar von baracuda
    Registriert seit
    10.11.2007
    Ort
    Köln
    Alter
    28
    Beiträge
    3.692
    Name
    Kevin
    hö? welche Datei willst du jetzt durchsuchen?
    In der TXT Datei würde ich einfach irgendein Zeichen zu einem Trennzeichen auserkoren und dann halt den eingegebenen Zeichensatz mit dem Zeichensatz zwischen den Trennzeichen durchsuchen.
    In einer XML ist das ganze noch einfacher da PHP mit XMLs arbeiten kann soweit ich das weis. Ansonsten schreibste dir nen Attribut in die XML nah welchem du suchen kannst.
    zum Incrementieren einer ID musst du die XML einlesen, gucken welche Nummer drin steht und dann einfach diese Zahl +1 machen und in die XML einbauen wenn du sie mit den neuen Daten erweiterst. In PHP ist das eigentlich kein großes Ding, warte ich such mal nen Codeschnipsel zusammen.

  15. #15
    Darth Plüsch !
    Avatar von mope7
    Registriert seit
    20.05.2002
    Ort
    Berlin
    Alter
    31
    Beiträge
    24.868
    Name
    Mike
    Nick
    atombrot
    kleine Anmerkung:

    wir sollen in txt und in xml speichern.

    hab einfach mal beides gepostet da ich mir dachte: vllt. gehts ja mit dem einen einfacher als mit dem anderen


    ich hab jetzt eine "suche" implementiert, die einfach nach dem eingegeben wort die textdatei durchsucht und mir dann sagt: "an der und der stelle und zeile isses"
    das ging dann doch recht gut, aber ich hätte halt schon lieber den kompletten datensatz. nur check ich des nich

    wenn es hilft lad ich meinen kram gerne noch noch, oder poste alles oder so ^^
    - Knippsi Klick, Flickr. -
    - Mein Zockprojekt ! Let's play Steamsammlung - begleitet mich durch meine Games !

  16. #16
    Big & Tasty
    Avatar von baracuda
    Registriert seit
    10.11.2007
    Ort
    Köln
    Alter
    28
    Beiträge
    3.692
    Name
    Kevin
    Das Problem in der Textdatei ist ja nicht das Suchen nach dem WOrt sondern das Unterscheiden der anderen Datensätze, wo fängt der eine an und wo hört der andere auf, denke das is dein Problem.
    Die Lösung: Lass die Textdatei so aussehen:
    DatensatzBeginn;Vorname: Hans, Nachname: Meier, Wohnort: Köln, Strasse: Hauptstraße 1, DatensatzEnde; DatensatzBeginn; usw...
    Durchsuch die Textdatei nach den "Trennzeichen" DatensatzBeginn und DatensatzEnde, wobei eines von beiden auch zugunsten eines "NEXT" oder so weg fallen könnte. Du bräcuhtest nichtmal diese langen Strings sondern könntest auch Sonderzeichen benutzen. Man kann hier so kreativ gestalten wie man will, meist wird die Ausgabe im Browser eh im selbigen zusammen gebastelt und nich bereits in der Textdatei.
    Heisst, arbeite mit den Trennzeichen und such dir entsprechende Sachen anhand derer zusammen.

  17. #17
    Darth Plüsch !
    Avatar von mope7
    Registriert seit
    20.05.2002
    Ort
    Berlin
    Alter
    31
    Beiträge
    24.868
    Name
    Mike
    Nick
    atombrot
    och menno, dabei war ich so stolz dass er mit die daten mit umbrüchen in die txt schreibt

    aber ok, ich werd das mal versuchen. danke erstmal und ich meld mich dann wieder
    - Knippsi Klick, Flickr. -
    - Mein Zockprojekt ! Let's play Steamsammlung - begleitet mich durch meine Games !

  18. #18
    Big & Tasty
    Avatar von baracuda
    Registriert seit
    10.11.2007
    Ort
    Köln
    Alter
    28
    Beiträge
    3.692
    Name
    Kevin
    Kannst auch die Umbrüche als Trennzeichen nehmen, was spricht dagegen? Im Prinzip sind das ja auch nur Zeichen für den Computer

    Du hast ja eine Trennung zwischen den Datensätzen, zwei Umbrüche, jetzt musst du nur an der Stelle den Vornamen suchen an der er auch steht, also nach dem ersten Komma im jeweiligen Datensatz.
    Das is wien grep in Linux, dass man sich kompliziert zusammen bastelt.
    Bei der XML kannst du es dir ganz einfach machen da du eh schon SimpleXML benutzt und du damit anhand von Tags suchen kannst.

  19. #19
    Ich muss gleich noch zum Institut, daher kann ich dir nicht sofort helfen, aber ich möchte dir noch schnell folgendes an Herz legen:

    Nutzer anstelle von
    1. $_POST['nachname']
    lieber
    1.  
    2. $nachname = \filter_input(INPUT_POST, 'nachname ', FILTER_SANITIZE_STRING, FILTER_FLAG_STRIP_LOW);
    3. echo \htmlspecialchars($nachname);
    4.  
    http://www.php.net/manual/de/function.filter-input.php

    Dies hat zwei Gründe.
    1. Es ist nicht sichergestellt, dass das Array $_POST einen Index nachname besitzt, da es vom Nutzer abhängt und somit außerhalb deiner Kontrolle liegt. Dieses Problem umgehen wir, indem wir es mit Hilfe von filter_input laden.
    2. Du provozierst XSS-Attacken, wenn du die EIngabe unmaskiert ausgibst. Daher solltest du es zunächst mit Hilfe von htmlspecialchars maskieren.


    Sollte
    nicht funktionieren, dann nutze
    Dies bedeutet lediglich, dass deine PHP Version nicht mindestens 5.3 entspricht und somit keine Namespaces unterstützt.




    Weitere Tipps gibt es am Nachmittag. Denke schon mal darüber nach, dass du HTML und PHP trennen solltest und nutze wenn möglich keine doppelten Hochkommatas in PHP, sondern einfache. Denn innerhalb von doppelten werden Variablen etc. umgewandelt, was eine beliebte Fehlerquelle ist.

    PS:
    Anstelle von
    1. $handle = fopen("daten.xml", "wb");
    2. fwrite($handle, $xml->asXML());
    3. fclose($handle);

    kannst du direkt

    1. \file_put_contents('./daten.xml', $xml->asXML());

    verwenden. Einen Handler explizit zu verwenden macht nur Sinn, wenn du mit ihm mehr vor hast, z.B. die Geschwindigkeit beim schreiben steuern willst, was aber auch nur bei sehr großen Datenmengen Sinn macht. Ansonsten ist es schlechter.

  20. #20
    Big & Tasty
    Avatar von baracuda
    Registriert seit
    10.11.2007
    Ort
    Köln
    Alter
    28
    Beiträge
    3.692
    Name
    Kevin
    Nun, so weit mit Maskierungen zu arbeiten war ich jetzt nicht, da mope ja eher am Anfang steht.
    Du vertiefst das ganze ja schon ziemlich gut^^
    btw die Methoden die du da vorschlägst kannte ich noch gar nicht, man lernt nie aus

    Osbes kannst du vllt deinen Code anders darstellen? Ich schaue hier über ein Netbook rein und die Schrift überschreitet den weißen Rahmen immer wenn sie etwas länger wird, da sie nicht umgebrochen wird.
    €: Womit schreibt ihr beide eigentlich euren Code?
    Ich benutz seit meiner Ausbildung vor 4 Jahren den Scite Editor und suche mittlerweile nach schöneren Alternativen.

+ Antworten
Seite 1 von 2 12 LetzteLetzte

Ähnliche Themen

  1. Antworten: 3
    Letzter Beitrag: 04.12.2010, 17:10
  2. Antworten: 7
    Letzter Beitrag: 23.11.2010, 23:08
  3. Nokia C5 - Weckfunktion funktioniert nicht richtig
    Von bAshTi im Forum Technik Ecke
    Antworten: 2
    Letzter Beitrag: 14.11.2010, 23:09
  4. Automatch funktioniert nicht mehr richtig?
    Von Wilko im Forum Alarmstufe Rot 3
    Antworten: 10
    Letzter Beitrag: 08.01.2009, 21:15
  5. Tiberiumsaat funktioniert nicht richtig
    Von gonzo28 im Forum Tiberium Wars & Kanes Rache
    Antworten: 9
    Letzter Beitrag: 03.01.2008, 14:59

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •