FAQ    Suchen    Mitglieder    Teams    Registrieren    Einloggen, um private Nachrichten zu lesen    Login  
Neuen Beitrag schreiben   Auf Beitrag antworten    Live for Speed Forum -> Smalltalk -> Lösungsansatz gesucht PHP, MySQL, Javascript
Seite 1 von 1 Vorheriges Thema anzeigen | Nächstes Thema anzeigen
Autor Nachricht
Offline RM.Baldi
Sebastian




Beiträge: 5548


Geburtstag: 26.02.1990
Beitrag Mi 09.12.09 23:06 Lösungsansatz gesucht PHP, MySQL, Javascript
Antworten mit Zitat  

Servus Jungens,
ich hoffe mal das hier genügend Leute sind die mir helfen können. ^^

Also, folgendes Problem:

Ich habe eine Datenbank, in der Adressdaten stehen.
Also 'Name', 'Ort', bla bla.
Alles was halt so dazu gehört.
Aus dieser Datenbank wird per PHP und HTML eine Tabelle erstellt, in der diese Daten ersichtlich sind.
In der letzten Spalte dieser Tabelle befindet sich ein Button.

Bei klick auf diesen Button sollen Formularfelder automatisch ausgefüllt werden.
Die Adressdaten also sichtbar für den Benutzer in den Feldern stehen.

Nunja, das funktioniert alles soweit ganz gut.

Aber erst mal zum Code:

Code:

<table cellpadding="2" cellspacing="2" border="0" STYLE="width:99%; font-size: 13px; font-family:'Times New Roman',Times,serif;">

  <tr STYLE="color: orange;">
      
       <td><b>ID</b></td>
       <td><b>Name</b></td>
       <td><b>Zusatz</b></td>
       <td><b>Strasse</b></td>
       <td><b>Ort</b></td>
         <td STYLE='width: 56px;'><b></b></td>
      
   </tr>
   <tr>

<?

            mysql_connect("localhost","********","*******");
            mysql_select_db("********") or die(mysql_error());

            $query="SELECT * FROM ********";
            $result=mysql_query($query);

            $num=mysql_numrows($result);


            $i=0;
            while ($i < $num) {

            $id            =mysql_result($result,$i,"id");
            $name         =mysql_result($result,$i,"name");
            $zusatz      =mysql_result($result,$i,"zusatz");
            $strasse   =mysql_result($result,$i,"strasse");
            $ort         =mysql_result($result,$i,"ort");

            echo "



               <td><b>$id</b></td>
               <td>$name</td>
               <td>$zusatz</td>
               <td>$strasse</td>
               <td>$ort</td>
               <td class='insert'>

                  <img src='images/bg_insert.png' value='$id' onclick='changeValue()'>

               <script type=\"text/javascript\">

               function changeValue(){

                  var EMPFname = \"$name\";
                  var EMPFzusatz = \"$zusatz\";
                  var EMPFstrasse = \"$strasse\";
                  var EMPFort = \"$ort\";

                  var nameChanger = document.getElementById('name');       
                  nameChanger.value = EMPFname;

                  var zusatzChanger = document.getElementById('zusatz');       
                  zusatzChanger.value = EMPFzusatz;

                  var strasseChanger = document.getElementById('strasse');       
                  strasseChanger.value = EMPFstrasse;

                  var ortChanger = document.getElementById('ort');       
                  ortChanger.value = EMPFort;
               }

               </script>
         


               </td>
             </tr>

            ";

            $i++;
            }
?>



</table>         


So... jetzt hab ich aber folgendes Problem, das Javascript daoben fügt jeweils bloß die zuletzt im Array stehenden Daten ein...

Jetzt nun die Frage, hab ich da einen komplett falschen Ansatz?
Falls ja, wenn jemand in der Lage dazu ist die Sache verständlich zu erklären, wäre ich sehr dankbar. ^^

Ich hoffe mal es sind Leute hier die dem gewachsen sind. Sehr Glücklich


Zuletzt bearbeitet von RM.Baldi am Fr 15.10.10 23:40, insgesamt 1-mal bearbeitet
Nach oben
Offline Kamel
Kai Lochbaum




Beiträge: 3864

Wohnort: Frankfurt
Geburtstag: 04.08.1983
Beitrag Mi 09.12.09 23:32 
Antworten mit Zitat  

Der falsche Ansatz ist der, dass du in der resultierenden Tabelle dann 20 mal die gleiche Funktion namens "changeValue()" drinnenstehen hast und der Aufruf nicht weiß welche er aufrufen soll.

Die einfachste Lösung wär wohl, die javascript funktion nur einmal außerhalb der Schleife rauszuschreiben und so zu ändern, dass du die Werte im Aufruf übergibst.

Im head:
Code:
<script type=\"text/javascript\">

               function changeValue(EMPFname, EMPFzusatz, EMPFstrasse, EMPFort){

                  var nameChanger = document.getElementById('name');       
                  nameChanger.value = EMPFname;

                  var zusatzChanger = document.getElementById('zusatz');       
                  zusatzChanger.value = EMPFzusatz;

                  var strasseChanger = document.getElementById('strasse');       
                  strasseChanger.value = EMPFstrasse;

                  var ortChanger = document.getElementById('ort');       
                  ortChanger.value = EMPFort;
               }

               </script>

Und inner Schleife
Code:
<img src='images/bg_insert.png' value='$id' onclick='changeValue(\"$name\", \"$zusatz\", \"$strasse\", \"$ort\")'>



p.s. deine ' und " sind komisch Bätsch normalerweise schreibt man im html " und im javascript '. Also ... onClick="foo('bar');"... . Und son riesiges echo is auch grausig ;P

p.p.s. und for schleifen sind auch toll ;P for($i = 0; $i < $num; $i++), dann steht alles was dazugehört an einer stelle und nicht, wie bei dir das $i++ gaaanz unten
Nach oben
Offline RM.Baldi
Sebastian




Beiträge: 5548


Geburtstag: 26.02.1990
Beitrag Mi 09.12.09 23:36 
Antworten mit Zitat  

AH GEIL!

Funktioniert genauso wie ich mir das erhoffte.
Naja, bin ja noch am lernen - hab dank Kai.

Ehrlich gesagt hab ich das vorher schon probiert gehabt, es scheiterte aber dann an den Variablen.

Vielmals Dank. =D

Kamel hat Folgendes geschrieben
p.s. deine ' und " sind komisch Bätsch normalerweise schreibt man im html " und im javascript '. Also ... onClick="foo('bar');"... . Und son riesiges echo is auch grausig ;P



Naja, im Javascript wars ja nur weil sich das ganze im PHP-Block befand, und der mag keine " darum ' ansonsten hätte ich an jeder Stelle \" schreiben müssen und da verliert man schnell den Überblick.
Und wegen dem echo - hmmm... muss ich mir bei gelegenheit nochmal angucken.


Kamel hat Folgendes geschrieben

p.p.s. und for schleifen sind auch toll ;P for($i = 0; $i < $num; $i++), dann steht alles was dazugehört an einer stelle und nicht, wie bei dir das $i++ gaaanz unten


Sicherlich nicht perfekt, aber funktional. ^^
Und da es ja momentan eh bloß für den Hausgebrauch ist, denk ich isses erst mal ausreichend. Smilie
Nach oben
Offline Kamel
Kai Lochbaum




Beiträge: 3864

Wohnort: Frankfurt
Geburtstag: 04.08.1983
Beitrag Do 10.12.09 0:32 
Antworten mit Zitat  

Baldi_SOS hat Folgendes geschrieben
AH GEIL!
...

Kamel hat Folgendes geschrieben
p.s. deine ' und " sind komisch Bätsch normalerweise schreibt man im html " und im javascript '. Also ... onClick="foo('bar');"... . Und son riesiges echo is auch grausig ;P



Naja, im Javascript wars ja nur weil sich das ganze im PHP-Block befand, und der mag keine " darum ' ansonsten hätte ich an jeder Stelle \" schreiben müssen und da verliert man schnell den Überblick.
Und wegen dem echo - hmmm... muss ich mir bei gelegenheit nochmal angucken.

...
Smilie

Man kann in php ja auch Strings mit ' abgrenzen, dann passt das auch mit den html ". echo '<a href="foo">...';
Und wenn man da so riesen Blöcke drinnenhat, die garkeine Variablen benutzen kann man auch einfach das php zwischendurch schließen

<?php tolle schleife { php code ?> html <?php und mehr php } ?>
wobei das auch nich sooo toll is Sehr Glücklich
Nach oben
Offline RM.Baldi
Sebastian




Beiträge: 5548


Geburtstag: 26.02.1990
Beitrag Do 15.07.10 21:27 
Antworten mit Zitat  

Ok, mal wieder ne Frage bei der ich einen Lösungsansatz brauche.

Ich brauch für ne Website so ne art "Notification Popup", das hab ich jetzt mehr oder weniger schon angefangen und hab dafür ein <div> das per Javascript entweder dargestellt, oder nicht dargestellt wird.

Nunja, das Problem ist folgendes wie krieg ich das ganze so verpackt dass das "Popup" nach beispielsweise 5sek wieder automatisch verschwindet?

Das Javascript sieht momentan so aus:

Code:

            function fade(obj) {
               var el = document.getElementById(obj);
               if ( el.style.display != "none" ) {
                  el.style.display = 'none';
               }
               else {
                  el.style.display = '';
               }
            }


Das ganze wird dann halt bloß per

Code:

fade('popup');


aufgerufen. Dann wirds aber bloß dargestellt.
Jemand ne Lösung parat? Kai? ^^

Edit:
Ok, hat sich erledigt... hab mittlererweile rausgefunden das man das ganze noch anders gesalten kann. Smilie
Nach oben
Offline Luder
Jörg Bauer




Beiträge: 5432

Wohnort: Duisburg
Geburtstag: 04.12.1970
Beitrag Do 15.07.10 22:04 
Antworten mit Zitat  

window.setTimeout("win.close()",10000);


?
Nach oben
Offline RM.Baldi
Sebastian




Beiträge: 5548


Geburtstag: 26.02.1990
Beitrag Do 15.07.10 22:24 
Antworten mit Zitat  

Ich hab das jetzt per onLoad im Body gelöst.
Per php wird überprüft ob die Sache notwendig ist, und wenn ja wird folgendes ausgeführt:

Code:

setTimeout('document.getElementById(\'notif\').style.visibility=\'hidd en\'',4000);"
Nach oben
Offline !ce.splattael
Pe Su




Beiträge: 1546

Wohnort: BO
Geburtstag: 23.05.1949
Beitrag Fr 16.07.10 13:20 
Antworten mit Zitat  

Guck' Dir bei Gelegenheit jQuery an. Das erspart Dir viel Javascript-Zu-Fuß.
Nach oben
Offline RM.Baldi
Sebastian




Beiträge: 5548


Geburtstag: 26.02.1990
Beitrag Fr 15.10.10 23:26 
Antworten mit Zitat  

So, ich mal wieder.

Problem ist folgendes, ich bräuchte mal nen Codeschnipsel in JavaScript welches folgendes für mich erledigt:

Wenn ein <input>-Feld nicht mehr leer ist, soll dahinter ein Bild dargestellt werden. Bild wäre in dem Falle ein Haken um zu kennzeichnen, dass das Feld ausgefüllt worden ist.

Falls mal jemand Zeit hat, wäre ich sehr dankbar - irgendwie steh ich mit dem JavaScript auf Kriegsfuß...^^
Nach oben
Offline Kamel
Kai Lochbaum




Beiträge: 3864

Wohnort: Frankfurt
Geburtstag: 04.08.1983
Beitrag Sa 16.10.10 10:47 
Antworten mit Zitat  

Theoretisch so:
onKeyDown="if(this.value != ''){this.style.backgroundImage='url("http://mypsn.eu.playstation.com/p sn/profile/baldisos.png");';}"

Nur irgendwie funktioniert das bild setzen nich und ich kapiert grad nicht, wieso ^^
Nach oben
Offline RM.Baldi
Sebastian




Beiträge: 5548


Geburtstag: 26.02.1990
Beitrag Sa 16.10.10 13:31 
Antworten mit Zitat  

Theoretisch müsste das doch auch über den CSS-Umweg gehen, oder? Also wenn dann this.value != '' ist, dann ist das div in dem das Bild ist style="display: block;" ansonsten ists "display: none;".

Kannst du mir das mal nach Javascript übersetzen? ^^
Nach oben
Offline Kamel
Kai Lochbaum




Beiträge: 3864

Wohnort: Frankfurt
Geburtstag: 04.08.1983
Beitrag Sa 16.10.10 13:49 
Antworten mit Zitat  

Achso "dahinter Bild" != "Hintergrundbild"... Sehr Glücklich

Dann müsste das sowas sein, wie
onKeyDown="if (this.value != '')document.getElementById('IDVOMDIV').style.display='block';else document.getElementById('IDVOMDIV').style.display='none';"
Nach oben
Offline RM.Baldi
Sebastian




Beiträge: 5548


Geburtstag: 26.02.1990
Beitrag Sa 16.10.10 14:05 
Antworten mit Zitat  

Sieht schon mal gut aus, kann ich aber im Moment nicht testen - ich geb bescheid wenn ichs ausprobiert hab. Aber schon mal danke. Sehr Glücklich
Nach oben
Offline RM.Baldi
Sebastian




Beiträge: 5548


Geburtstag: 26.02.1990
Beitrag So 17.10.10 15:43 
Antworten mit Zitat  

Ok, hab grade mal getestet - funktioniert irgendwie garnicht. ^^

Aber mal noch nen anderen Ansatz, wenn man das ganze in ne Funktion packt, die eben überprüft ob das Input-Feld leer ist und wenn ja ein Bild darstellt und wenn nein ein anderes Bild. Also das quasi bloß die source im Image-Tag ausgetausch wird.

Dass das Ganze mit .images[bildname].src = '../images/bla.png'; geht hab ich schon mal rausgekriegt, aber wie krieg ich das in ne Funktion? Sehr Glücklich
Nach oben
Beiträge vom vorherigen Thema anzeigen:   
Neuen Beitrag schreiben   Auf Beitrag antworten    Live for Speed Forum -> Smalltalk -> Lösungsansatz gesucht PHP, MySQL, Javascript Alle Zeiten sind MESZ (Sommerzeit)

phpBB © phpBB Group

Impressum | Datenschutz