klaansieck: Ajax responseText Eventhandling

Beitrag lesen

Ihr habt Euch sehr viel Mühe mit mir gegeben. Vielen Dank erstmal. Nun die funktionierende Lösung:

<!DOCTYPE html>
<html>
<head>
<style>
a  {
    padding: 0.2em;
    margin: 0.2em;
    color: #252525;
    text-decoration: none;
    font-family: Arial, sans;
}
a:focus, a:active {
    color: #C13832;
}
</style>
</head>
<body>

<input type="text" id="suchid1" onkeydown="getfocus(event,1,2)" size="40" onkeyup="testeatsuche(this.value)" autocomplete="off" autofocus><br><span id='sicherheitshinweis'></span>



<p>Fokus durch Cursertasten nach oben und unten andern, auf Return Link folgen.</p>

<p id="demo"></p>

<script>

function testeatsuche(inhalt)
{
 var x = inhalt;
 var param = x;
 if (inhalt=="")
 {
  document.getElementById("sicherheitshinweis").innerHTML="keine Eingabe";
  return;
 }
 if (window.XMLHttpRequest)
 {
  // AJAX nutzen mit IE7+, Chrome, Firefox, Safari, Opera
  xmlhttp=new XMLHttpRequest();
 }
 else
 {
  // AJAX mit IE6, IE5
  xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
 }
 xmlhttp.onreadystatechange=function()
 {
  if (xmlhttp.readyState==4 && xmlhttp.status==200)
  {
   document.getElementById("sicherheitshinweis").innerHTML=xmlhttp.responseText;
  }
 }
 xmlhttp.open("GET","../../db/medsuche.php?q="+param,true);
 xmlhttp.send();
}

function getfocus(event,vor,nach) {
   var x = event.keyCode;
   if (x == 40){   // nach unten
   var neuerfocus = "suchid" + nach;
      document.getElementById(neuerfocus).focus();
   }
   if (x == 38){   // nach oben
      var neuerfocus = "suchid" + vor;
      document.getElementById(neuerfocus).focus();

      if (neuerfocus == "suchid1") {

         setTimeout(function(){  // setzt den Cursor an das Ende des Input-Felds
            var anfrage = document.getElementById(neuerfocus).value;

            document.getElementById("suchid1").value = '';
            document.getElementById("suchid1").value = anfrage;

         }, 0);
      }
   }
}

function myFunction(event,vor,nach) {
        var x = event.keyCode;
    document.getElementById("demo").innerHTML = "The Unicode value is: " + x;
}
</script>

</body>
</html>

../../medsuche liefert z.B.: (nur syntaktisch korrekt, ansonsten Unsinn)

<a id="suchid2" href="treffer1" onkeydown="getfocus(event,1,3)">text1</a><br>
<a id="suchid3" href="treffer2" onkeydown="getfocus(event,2,4)">text2</a><br>
<a id="suchid4" href="treffer3" onkeydown="getfocus(event,3,5)">text3</a><br>
<a id="suchid5" href="treffer4" onkeydown="getfocus(event,4,6)">text4</a><br>
<a id="suchid6" href="treffer5" onkeydown="getfocus(event,5,6)">text55</a><br>

Friedel