Wer kann mir den Zusammenhang erklären? (Ajax/PHP/Javascript)
Franz. Z.
- programmiertechnik
Hallo,
nachdem nun meine Ajax-Anwendung (autosuggest) mit Modifizierungen bestens läuft, ist das einzige, was mich stört, dass ichs nicht verstehe, was nicht zuletzt an nahezu völlig fehlenden Javascriptkenntnissen liegt.
Wer kann mir (für Anfänger verständlich) mal kurz erklären, was genau da abläuft und weshalb genau dort eingefügt wird, wo ichs auch benötige?
Ich hoffe, man kann es überhaupt anhand dieser Codeschnipsel erklären, weil ich ja wesentliche Teile weglasse. Mir geht es mehr um die Systematik dieser beiden Abschnitte zueinander.
Mal sehen, vielleicht wird ja wer schlau daraus.
Das Script habe ich von:
http://www.brandspankingnew.net/specials/ajax_autosuggest/ajax_autosuggest_autocomplete.html
Grüße, Franz
Das Formular:
<label for="testinput"></label>
<input type="text" SIZE="30" maxlength="255" name="testinput" id="testinput" value="" />
ID Field: <input type="text" name="testid" id="testid" value="" SIZE=5 MAXLENGTH=5">
<script type="text/javascript">
var options = {
script:"ajax/test.php?json=true&",
varname:"input",
json:true,
minchars:2,
timeout:15000,
callback: function (obj) { document.getElementById('testid').value = obj.info; }
};
var as_json = new AutoSuggest('testinput', options);
var options_xml = {
script:"test.php?",
varname:"input"
};
var as_xml = new AutoSuggest('testinput_xml', options_xml);
</script>
Das php-script:
if (isset($_REQUEST['json']))
{
header("Content-Type: application/json");
echo "{\"results\": [";
$arr = array();
for ($i=0;$i<count($aResults);$i++)
{
$arr[] = "{\"id\": \"".$aResults[$i]['id']."\", \"value\": \"".utf8_encode($aResults[$i]['value'])."\", \"info\": \"".$aResults[$i]['info']."\"}";
}
echo implode(", ", $arr);
echo "]}";
}
Lieber Franz.,
was mich stört, dass ichs nicht verstehe, was nicht zuletzt an nahezu völlig fehlenden Javascriptkenntnissen liegt.
was hindert Dich daran, dazuzulernen? Man kann zu den von Dir genannten Begriffen wunderbar googlen... Und wenn Du Nahchilfe in Sachen Javascript benötigst, dann findest Du haufenweise "Tutorials" dazu im Netz. Grundbegriffe bekommst Du auch hier bei SELFHTML vermittelt. Dazu gibt es hier dann noch einen kleinen Lehrgang, und wenn _dann_ noch Fragen offen bleiben, dann fragst Du hier wieder nach.
Wer kann mir (für Anfänger verständlich) mal kurz erklären, was genau da abläuft und weshalb genau dort eingefügt wird, wo ichs auch benötige?
Warum sollte ich mir über Dein Script Gedanken machen? Ich bekomme ja nichts dafür. Weder neue Erkenntnisse, noch irgendeinen anderen Mehrwert.
Ich hoffe, man kann es überhaupt anhand dieser Codeschnipsel erklären, weil ich ja wesentliche Teile weglasse.
Mir geht es mehr um die Systematik dieser beiden Abschnitte zueinander.
Und was hat die Suchmaschine Deines Vertrauens gesagt?
Das Script habe ich von:
http://www.brandspankingnew.net/specials/ajax_autosuggest/ajax_autosuggest_autocomplete.html
Und die verraten nix und wieder nix darüber? Na, dann würde ich denen mal eine Mail schicken. Die haben das Teil schließlich entwickelt! Ach nee, halt stop. Immerhin haben sie gleich am Anfang der Seite auf den original-Artikel verlinkt, von wo sie diese Technik herbezogen haben. Aber den hat Du ja sicher längst studiert...
[code]...
Ne, sorry. Aber das tue ich mir nun definitiv nicht an. Mach's selber! Das hier ist das SELF-Forum. Und Du kannst genügend Englisch, um das zu verstehen, denn immerhin hast Du Dir Deine Sachen von englischsprachigen Quellen geholt.
Liebe Grüße,
Felix Riesterer.
Und die verraten nix und wieder nix darüber? Na, dann würde ich denen mal eine Mail schicken. Die haben das Teil schließlich entwickelt! Ach nee, halt stop. Immerhin haben sie gleich am Anfang der Seite auf den original-Artikel verlinkt, von wo sie diese Technik herbezogen haben. Aber den hat Du ja sicher längst studiert...
Ich habe tatsächlich alles und noch mehr gelesen, was es zu diesem Script zu lesen gibt. Leider ist mein Englisch weit weniger gut, als Du vermutest.
Es reicht, um gut vermittelte Dinge zu verstehen. Die Dinge, die eh als bekannt vorausgesetzt werden, bekomme ich leider nicht mal mit.
Im Wesentlichen gehts mir aber doch auch nur darum, zu verstehen, wie und über welche Bezeichnungen die Inhalte aus dem Array des php-skriptes ins Formular kommen.
Klar, würde ich jetzt komplett Javascript lernen, wäre das sicher dabei. Ich will aber lediglich dieses Script z.B. (und auch das nur vielleicht!) mal in einem Formular verwenden in dem ich 20 Formularzeilen dynamisch generiere und um das zu können, müßte ich wissen, wie der "Handshake" zwischen dem array aus php und den Formularnamen im HTML-Part ist. Bzw. wie dieser callback-Teil des Javascriptes das Formularfeld anspricht.
Was Du grad machst, ist Folgendes:
Ein Fahranfänger fragt, wer an Kreuzung XY Vorfahrt hat und Du drückst ihm die Strassenverkehrsordnug in die Hand...
Trotzdem hast Du Dir dabei dann noch ne Menge Mühe gegeben ;-)
Grüße, Franz
Hi,
Im Wesentlichen gehts mir aber doch auch nur darum, zu verstehen, wie und über welche Bezeichnungen die Inhalte aus dem Array des php-skriptes ins Formular kommen.
Dann schau dir doch erst mal an, was das PHP-Script liefert. Stelle den Header auf text/plain um, und schau dir ueber Aufruf im Browser an, was es liefert.
Du wirst erkennen, dass JSON eigentlich "nur" JavaScript-Code ist - mit spezieller Notation fuer Objekt- und Array-Deklarationen.
Dieser JavaScript-Code wird dann hoechstvermutlich vom AutoSuggest-Objekt per eval zur Ausfuehrung gebracht, so dass eine JavaScript-Datenmenge entsteht.
Wenn dich die Detailschritte interessieren - dann schau mal mit einem JavaScript-Debugger wie bspw. dem der Firebug-Extension fuer den Firefox nach, was im einzelnen passiert.
MfG ChrisB
Dann schau dir doch erst mal an, was das PHP-Script liefert. Stelle den Header auf text/plain um, und schau dir ueber Aufruf im Browser an, was es liefert.
Ansich ein ganz normales assoziatives Array mit jeweils 3 Schlüsseln samt Werten.
Du wirst erkennen, dass JSON eigentlich "nur" JavaScript-Code ist - mit spezieller Notation fuer Objekt- und Array-Deklarationen.
Na, eher nicht :-( Oder sollte ich :-) machen?
Gruß, Franz
»» Dann schau dir doch erst mal an, was das PHP-Script liefert. Stelle den Header auf text/plain um, und schau dir ueber Aufruf im Browser an, was es liefert.
»»Ansich ein ganz normales assoziatives Array mit jeweils 3 Schlüsseln samt Werten.
A JSON object should have the following structure:
{ results: [
{ id: "1", value: "Foobar", info: "Cheshire" },
{ id: "2", value: "Foobarfly", info: "Shropshire" },
{ id: "3", value: "Foobarnacle", info: "Essex" }
] }
Hallo,
wenn sich der Text ändert, ruft das Skript eine PHP-Datei auf, die den Text verarbeitet und entsprechende Vorschläge macht. Diese werden in einem für das JavaScript verstädlichen Format ausgegeben und das script wertet diese dann aus...
mfg, Flo
Hallo,
wenn sich der Text ändert, ruft das Skript eine PHP-Datei auf, die den Text verarbeitet und entsprechende Vorschläge macht. Diese werden in einem für das JavaScript verstädlichen Format ausgegeben und das script wertet diese dann aus...
mfg, Flo
Hi Flo,
jaja, soweit bin ich auch schon ;-)
Ich weiß einfach nicht, wie man diese Javascript Formularfelder anspricht.
Grüße, F.
hi,
Ich weiß einfach nicht, wie man diese Javascript Formularfelder anspricht.
Äh, meintest Du "Formularfelder mit Javascript ansprechen" ?
Siehe ---> document.getElementById()
Hotte