Variabel übergeben / AJAX

vsitor

Erfahrenes Mitglied
Hallo,

ich nutze via AJAX die Funktion Ajax.Autocompleter.
Nun habe ich das schon bei einem Formular erfolgreich umgesetzt. Allerdings gibts es nun Probleme, wenn das Feld einen anderen Namen als 'username' hat.

Das Feld heisst so:
HTML:
<input type="text" id="search" name="search_author"/>
Wenn ich das Feld mit
HTML:
name="username"
umbenenne, dann klappts zwar mit dem Autovervollständigen, allerdings Funktioniert dann die Suche nicht mehr, weil die Suche die Variable
HTML:
search_author
benötigt.

Die User sind aber in der Datenbank unter user ---> username gespeichert.

Die SQL Abfrage habe ich so programmiert:
Code:
	$sql = "SELECT username FROM users WHERE username LIKE '" . $_POST['username'] . "%'";
$rs = mysql_query($sql);

Dann erfolgt die Ausgabe via

Code:
<? while($data = mysql_fetch_assoc($rs)) { ?>
  <li><a class="backgroundlink" href='javascript://'><? echo stripslashes($data['username']);?></a></li>
<? } ?>

Jetzt dachte ich, dass es eventuell mit Javascript eine Möglichkeit gibt, im Formular ein HIDDEN Feld mit Name search_author einzubauen und es mit der Variablen von einem Textfeld mit namen 'username' zu übertragen.

Hat einer eventuell eine Idee, wie er da rangehen würde?
Besten Dank
 
Hi visitor,
ehrlich gesagt verstehe ich dein Problem nicht ganz.
Was hindert dich denn daran sich global auf einen Variablen Namen zu einigen und diesen mit deinen Scripten anzusprechen ?

Ein Inputfeld auf hidden zu setzen und dieses mit werten zu füllen ist sicherlich auch kein Problem.



best
mr-d
 
Du könntest das Formular direkt ansprechen zu Beginn und einfach ein hidden Feld anhängen.

Zm Beispiel so.

Code:
var hiddenField = null;

window.onload = function () {
    //das Formular
    var form = document.getElementById('form_id');
    var suchFeld = document.getElementById('search');
    
        hiddenField      = document.createElement('INPUT');
        hiddenField.type = 'hidden';
        hiddenField.id   = 'user_field';
        hiddenField.name = 'username';
        
    //das input feld mit username gleich hinter das Suchfeld klemmen
    form.insertBefore(hiddenField,suchFeld.nextSibling);
        
    //legen wir noch einen Event auf das suchfeld
    if(document.addEventListener) {
        suchFeld.addEventListener('keyup',addValuesToUserField,false);
    } else {
        suchFeld.attachEvent('onkeyup',addValuesToUserField);
    }
}

function addValuesToUserField (eventObj) {
    //der aktuelle Event
    var evt = (eventObj)?eventObj:(window.event)?window.event:'';
    //das Ziel was den Event ausgelöst hat
    var curTarget = (evt.target)?evt.target:evt.srcElement;
    
    // nun schreiben wir den aktuellen Wert vom suchfeld 
    hiddenField.value = curTarget.value;    
}

War nun zu faul dies zu testen aber so ungefähr könnte es ablaufen dann.

Oki eben gesehen hat sich erledigt lesen bildet halt doch ;)
 

Neue Beiträge

Zurück