Drop menue Programmierung

Hi, tut mir leid, aber "das hängt mir alles zu hoch"! Ich kann damit überhaupt nichts anfangen. Ich weiß nicht, wie ich das script dolt() in mein o.a. script einbauen soll oder umgekehrt! Da bin ich einfach noch viel zu unbedarft und überfragt. Da und so komme ich nicht weiter. Trotzdem vielen Dank bis hierhin. Es hat mir schon einiges gebracht. Aber ich muss vermutlich selbst rausfinden, wie ich meine Verträge aus dem Dropdown-Menue extrahieren kann! Schade....

mfg
WP
 
Javascript:
             function sendRequest(url, id){
             
                 //erstellen des requests
                 var req = null;

                try{
                    req = new XMLHttpRequest();
                }
                catch (ms){
                    try{
                        req = new ActiveXObject("Msxml2.XMLHTTP");
                    } 
                    catch (nonms){
                        try{
                            req = new ActiveXObject("Microsoft.XMLHTTP");
                        } 
                        catch (failed){
                            req = null;
                        }
                    }  
                }

                if (req == null)
                      alert("Error creating request object!");
                  
                  //anfrage erstellen (GET, url ist localhost,
                  //request ist asynchron      
                  req.open("GET", url, true);

                //Beim abschliessen des request wird diese Funktion ausgeführt
                req.onreadystatechange = function(){            
                    switch(req.readyState) {
                            case 4:
                            if(req.status!=200) {
                                alert("Fehler:"+req.status); 
                            }else{    
                                alert(req.responseText);
                                //schreibe die antwort in den div container mit der id content 
                                document.getElementById(id).innerHTML = req.responseText;
                            }
                            break;
                    
                            default:
                                return false;
                            break;     
                        }
                    };
  
                  req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
                req.send(null);
            }

HTML:
<div id="output"></div>
<select onchange="sendRequest('deine_php_datei.php?data='+this.value, 'output');">
  <option value="1">1. Option</option>
  <option value="2">2. Option</option>
</select>

PHP:
//deine_php_datei.php
echo 'Getroffene Auswahl: '.$_GET['data'];

Wenn du die Variable in einem Query verwendest, unbedingt mysql_real_escape_string() verwenden.
 
Hi, ich finde es toll, dass Du Dir für mich soviel zeiot nimmst, aber nimm es mir nicht übel. Kannst Du mir das in mein Script so einbauen, dass ich das verstehe(siehe Mailanfrage)? Ich komme nicht klar damit.
Muss ich Dein script jetzt unter meines schreiben als function und dann die Funktion in meinem script aufrufen? aber wo rufe ich auf? Am Ende meines scriptes, in der Mitte oder wo? Wo wird der HTLM-Code und der PHP script eingebaut? Du schreibst: "
<select onchange="sendRequest('deine_php_datei.php?data='+this.value, 'output');">", aber welche php-datei?

Bitte hilf mir nochmal... ich verzwiefle hier noch.....
 
Welche PHP-Datei?:
Du benötigst eine PHP Datei die deine Datenbankabfrage durchführt (logisch, irgendwoher müssen deine Daten ja kommen).
Sieht ungefähr so aus:
1. User wählt was im Select Feld aus.
2. Der onchange Eventhandler wird ausgelöst und ruf die Javascriptfunktion sendRequest() auf
3. Ein Ajax Request zu deiner PHP Datei wird abgesendet
4. Die PHP Datei wird ausgeführt, alle Ausgaben die normalerweise im Browser angezeigt werden, werden nun zurück gesendet
5. Die sendRequest() Funktion fügt den Inhalt in ein HTML Element deiner Wahl ein (per id)

Beispiel:
HTML:
<!--- Die Datei die im Browser angezeigt wird -->
<html>
  <head>
    <!-- Javascript Datei einbinden -->
    <script type="text/javascript" src="main.js"></script>
    <title>Mein Ajax Test</title>
  </head>
  <body>
    <div id="output"></div>
      <select onchange="sendRequest('dbrequest.php?data='+this.value, 'output');">
        <option value="1">1. Option</option>
        <option value="2">2. Option</option>
      </select>
  </body>
</html>

Javascript:
//main.js

function sendRequest(url, id){
             
  //erstellen des requests
  var req = null;
 
  try{
    req = new XMLHttpRequest();
  }
  catch (ms){
    try{
      req = new ActiveXObject("Msxml2.XMLHTTP");
    } 
    catch (nonms){
      try{
        req = new ActiveXObject("Microsoft.XMLHTTP");
      } 
      catch (failed){
        req = null;
      }
    }  
  }
 
  if (req == null)
    alert("Error creating request object!");
                   
  req.open("GET", url, true);
 
  //Beim abschliessen des request wird diese Funktion ausgeführt
  req.onreadystatechange = function(){            
  switch(req.readyState) {
    case 4:
      if(req.status!=200) {
        alert("Fehler:"+req.status); 
      }else{    
        alert(req.responseText);
        //schreibe die antwort in den div container mit der id content 
        document.getElementById(id).innerHTML = req.responseText;
      }
    break;
                    
    default:
      return false;
    break;     
    }
  };
  
  req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
  req.send(null);
}

PHP:
//dbrequest.php
mysql_connect('localhost', 'user', 'password');
mysql_select_db('database');

if( isset($_GET['data']) ){
  $sql = 'SELECT * FROM `table` WHERE `field` = "'.mysql_real_escape_string($_GET['data']).'"';
  $result = mysql_query($sql);
  $row = mysql_fetch_assoc($result);
  echo $row['field'];
}
else{
  echo 'Invalid Request';
}

Das sollte alles sein was du brauchst.
 
Hi,
sorry, es funktioniert nicht. Meine Verträge werden nicht angezeigt! :-(
Alles was ich erhalte ist ein Drop downmenue mit Inhalt: 1. Beispiel und 2. Beispiel.

mfg
WP
 
Hi, der Originalcode war der erste, den ich gesandt habe. Dann habe ich die Funktion sperat als main.js, die dbrequest.php und die Datei "Mein AjaxTest.htm" erstellt. Es kommen einfach keine Daten aus meiner Datenbank rüber, obwohl richig eingetragen.
Frage: was muss als "url" in der main.js eingetragen werden? Ist dies der gesamte Link zu meinem Programm: http://localhost/wemepes/bookmarks/ ****?
PHP:
//php
//dbrequest.php 
mysql_connect('localhost', 'root', 'passwort');
mysql_select_db('wemepes_ch');
 
if( isset($_GET['data']) ){
  $sql = 'SELECT * FROM `bookmark` WHERE `vertrag` = "'.mysql_real_escape_string($_GET['data']).'"';
  $result = mysql_query($sql);
  $row = mysql_fetch_assoc($result);
  echo $row['vertrag'];
}
else{
  echo 'Invalid Request';
}

//php

//html
<!--- Die Datei die im Browser angezeigt wird -->
<html>
  <head>
    <!-- Javascript Datei einbinden -->
    <script type="text/javascript" src="main.js"></script>
    <title>Mein Ajax Test</title>
  </head>
  <body>
    <div id="output"></div>
      <select onchange="sendRequest('dbrequest.php?data='+this.value, 'output');">
        <option value="1">1. Option</option>
        <option value="2">2. Option</option>
      </select>
  </body>
</html>

//html
---------------------------------------------------------
//php

//main.js
 
function sendRequest(url, gcname){
 
  //erstellen des requests
  var req = null;
 
  try{
    req = new XMLHttpRequest();
  }
  catch (ms){
    try{
      req = new ActiveXObject("Msxml2.XMLHTTP");
    }
    catch (nonms){
      try{
        req = new ActiveXObject("Microsoft.XMLHTTP");
      }
      catch (failed){
        req = null;
      }
    }
  }
 //anfrage erstellen (GET, url ist localhost,
 //request ist asynchron    
 if (req == null)
     alert("Error creating request object!");
 
     req.open("GET", url, true);
  
  //Beim abschliessen des request wird diese Funktion ausgeführt
  req.onreadystatechange = function(){
  switch(req.readyState) {
    case 4:
      if(req.status!=200) {
        alert("Fehler:"+req.status);
      }else{
        alert(req.responseText);
        //schreibe die antwort in den div container mit der id content
        document.getElementById(id).innerHTML = req.responseText;
      }
    break;
 
    default:
      return false;
    break;
    }
  };
 
  req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
  req.send(null);
}

//php
//-------------------------------------------------------
 
Zuletzt bearbeitet von einem Moderator:
Du bist nen Held. Du änderst den Parameter, die zugehörige Variable im Code allerdings nicht:
Javascript:
document.getElementById(id).innerHTML = req.responseText;
//Änder zu
document.getElementById(gcname).innerHTML = req.responseText;

Und bitte bitte CODETAGS benutzen...
 
Hi, entschuldigen Sie, wenn ich Sie nochmal belästige:
Ich kann machen was ich will, ich krieg das "nicht gebacken"!

Warum werden meine Verträge(id bezogen)aus der Datenbank so nicht ausgelesen und angezeigt?

Was muss unter 'data' eingesetzt werden? muss das heißen: 'data' = 'vertrag'?
PHP:
//php
//dbrequest.php 
mysql_connect('localhost', 'root', 'password');
mysql_select_db('wemepes_ch');
 
if( isset($_GET[data]) ){
  $sql = 'SELECT * FROM `bookmark` WHERE `vertrag` = "'.mysql_real_escape_string($_GET['data']).'"';
  $result = mysql_query($sql);
  $row = mysql_fetch_assoc($result);
  echo $row['vertrag'];
}
else{
  echo 'Invalid Request';
}
 
//php
-------------------------------------------------------------------------------------------------------------------------------------
 
wird hier für id = gcname eingetragen, da nur die Verträge des users=gcname angezeigt werden sollen? 
 
was muss als url angezeigt?
 
//php
//main.js
 
function sendRequest(url, id){
 
  //erstellen des requests
  var req = null;
 
  try{
    req = new XMLHttpRequest();
  }
  catch (ms){
    try{
      req = new ActiveXObject("Msxml2.XMLHTTP");
    }
    catch (nonms){
      try{
        req = new ActiveXObject("Microsoft.XMLHTTP");
      }
      catch (failed){
        req = null;
      }
    }
  }
 
  if (req == null)
    alert("Error creating request object!");
 
  req.open("GET", url, true);
 
  //Beim abschliessen des request wird diese Funktion ausgeführt
  req.onreadystatechange = function(){
  switch(req.readyState) {
    case 4:
      if(req.status!=200) {
        alert("Fehler:"+req.status);
      }else{
        alert(req.responseText);
        //schreibe die antwort in den div container mit der id content
        document.getElementById(id).innerHTML = req.responseText;
      }
    break;
 
    default:
      return false;
    break;
    }
  };
 
  req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
  req.send(null);
}

//php
------------------------------------------------------------------------------------------------------------------------------
//html
  <head>
    <!-- Javascript Datei einbinden -->
    <script type="text/javascript" src="./main.js"></script>
    <title>Mein Ajax Test</title>
  </head>
  <body>
    <div id="output"></div>
      <select onchange="sendRequest('./dbrequest.php?data='+this.value, 'output');">
        <option value="1">1. Option</option>
        <option value="2">2. Option</option>
      </select>
  </body>
//html
--------------------------------------------------------------------------------------------------------------------------------
1. Option + 2. Option was muss hier eingetragen werden?
Ich würde die Begriffe 1. vertrag + 2. datum einsetzten, da das aus den Datenbank bezogen auf den username = gcname angezeigt werden soll

mit freundlichen Grüßen
PETERS, Werner
 
Bevor ich anfange darüber nachzudenken, BITTE CODE TAGS BENUTZEN, das liest sich ja so keiner durch ...

[code=php]
Hier deinen Code reinkopieren
[/code]


ist doch jetzt wirklich nicht zuviel verlangt
 
Zurück