Ausgabe ohne Seitenreload

This site uses cookies. By continuing to browse this site, you are agreeing to our Cookie Policy.

  • Ausgabe ohne Seitenreload

    Moin,

    Ich Suche eine Möglichkeit um den Wert eines input Feldes per PHP zu prüfen und je nach Ergebniss eine Info bzw ein input Feld ausgeben zu lassen. Das ganze ohne Seitenreload.

    Source Code

    1. <input name="email" type="text" id="email" required="required" placeholder="E-Mail" />



    Die Eingabe soll per JQUERY an example.php gesendet werden. Dort wird überprüft ob die E-Mail Adresse bereits vorhanden ist und dem entsprechend eine Meldung ausgegeben werden, ohne Seitenrealod natürlich.

    Da ich von Ajax bzw JQUERY nix versteh hoffe ich hier auf Hilfe.
  • Der Ajax-Aufruf sollte wie folgt funktionieren:

    Source Code

    1. function check(value)
    2. {
    3. var url = ".../example.php?value=" + value;
    4. var out = document.getElementById('output');
    5. new Ajax.Request(url, {
    6. method: 'get',
    7. onSuccess: function(response)
    8. {
    9. if (response.responseText != '')
    10. {
    11. out.innerHTML = response.responseText;
    12. }
    13. }
    14. }
    15. });
    Display All

    und im HTML-Code aktuvierst du die Funktion mit

    Source Code

    1. <input name="email" type="text" id="email" required="required" placeholder="E-Mail" onBlur="check(this.value)" />
    2. <div id="output"></div>


    Thomas

    The post was edited 4 times, last by Thomas Henkel ().

  • Ich habe vergessen zu erwähnen, die Ausgabe ob vorhanden oder nicht muss per PHP ausgegeben werden also per echo
    Sprich beim Absenden an den JS Code senden, dieser sendet es an die PHP File und dort soll es per echo ausgegeben werden.
  • Ich habe meine Antwort nochmal editiert, kann also sein, dass du die alte Version gelesen hast. Der Code geht davon aus, dass du in der example.php deine Entscheidung triffst und dementsprechend das Infofeld oder die InputBox per echo zurückgibst.

    Sprich beim Absenden an den JS Code senden, dieser sendet es an die PHP File und dort soll es per echo ausgegeben werden.

    Warum soll Javascript nachdem es von der example.php die Entscheidung ob gültig oder nicht bekommen hat nochmal an PHP schicken? Das habe ich noch nicht verstanden.

    Thomas
  • Naja, deine Antwort kann beliebiger HTML-Code sein, also auch mehrere Inputfelder beinhalten, evtl. durch <div> eingerahmt oder ähnliches.

    Edit: Oder meinst mehrere Inputfelder zur Überprüfung an die check-Funktion? Dann würde ich einen zusätzlichen Parameter angeben, der den Namen/ID des Inputfeldes enthält. Damit kannst du dann in der example.php die Inputboxen auseinander halten und entsprechende Antworten generieren.

    Thomas
  • Also dann würde ich die Funktion wie folgt abändern und gleichzeitig auf POST umstellen, damit du keine Probleme mit Sonderzeichen bekommst:

    Source Code

    1. function check(id, value)
    2. {
    3. var url = ".../example.php";
    4. var out = document.getElementById('output');
    5. new Ajax.Request(url, {
    6. method: 'post',
    7. parameters: {id: id, value: value},

    Dann kannst du in der example.php per $_POST['id'] die verschiedenen Inputfelder auseinander halten.

    Thomas
  • Ok,

    Das mit der E-Mail war nur ein Beispiel aber ich denke damit komme ich nicht weiter.
    Ich Poste mal das ganze Beispiel.

    Source Code

    1. function check(id, value){ var url = "example.php"; var out = document.getElementById('output'); new Ajax.Request(url, { method: 'post', parameters: {id: id, value: value},});


    Source Code

    1. <form> <fieldset> <legend><strong>Domain auswählen</strong></legend> <div> <label for="whois_domain" accesskey="U">Domain: http://</label> <input name="whois_domain" type="text" id="whois_domain" required="required" placeholder="domain" /> <select name="whois_tld"> {foreach from=$DOMAIN_LIST item=list} <option value="{$list.id}" >{$list.end}</option> {/foreach} </select> </div> </fieldset> <input type="submit" id="whois_domain" class="submit" value="Weiter zu Schritt 2"> </form>



    Dieses soll nun an die example.php gesendet werden. und dort ausgewertet werden.

    Source Code

    1. $whois_domain = $_POST['whois_domain'];$whois_tld = $_POST['whois_tld'];
    2. if ($res['code']==1000) { $obj = "domain"; $meth = "check"; $params = array(); $params['domain'] = $whois_domain.$whois_tld; $res = $domrobot->call($obj,$meth,$params); if ( $res['resData']['domain'][0]['status'] == 'free') { echo 'Frei'; } else { echo 'belegt'; }}



    Dein Code lässt sich so nicht nutzen habe ich fest gestellt. Deswegen poste ich das ganze mal
  • Du brauchst also eher die Möglichkeit, beide Werte (whois-domain und whois-tld) gleichzeitig zu prüfen. Dann rufe check() im Inputfeld und im Select ohne Parameter auf und hole dir die Werte in der Funktion selbst per getElementById. Dann kannst du sie als Parameter an den AjaxRequest übergeben.

    Thomas
  • Keine Ahnung was mit diesem Forum los ist warum er das nicht so wirklich formatiert.


    Source Code

    1. function check(id, value)
    2. {
    3. var url = "example.php";
    4. var out = document.getElementById('output');
    5. new Ajax.Request(url, {
    6. method: 'post',
    7. parameters: {id: id, value: value},
    8. });


    Source Code

    1. <form>
    2. <fieldset>
    3. <legend><strong>Domain auswählen</strong></legend>
    4. <div>
    5. <label for="whois_domain" accesskey="U">Domain: http://</label>
    6. <input name="whois_domain" type="text" id="whois_domain" required="required" placeholder="domain" /> <select name="whois_tld">
    7. {foreach from=$DOMAIN_LIST item=list}
    8. <option value="{$list.id}" >{$list.end}</option>
    9. {/foreach}
    10. </select>
    11. </div>
    12. </fieldset>
    13. <input type="submit" id="whois_domain" class="submit" value="Weiter zu Schritt 2">
    14. </form>
    15. <div id="output"></div>
    Display All


    Source Code

    1. $whois_domain = $_POST['whois_domain'];
    2. $whois_tld = $_POST['whois_tld'];
    3. if ($res['code']==1000) {
    4. $obj = "domain";
    5. $meth = "check";
    6. $params = array();
    7. $params['domain'] = $whois_domain.$whois_tld;
    8. $res = $domrobot->call($obj,$meth,$params);
    9. if ( $res['resData']['domain'][0]['status'] == 'free') {
    10. echo 'Frei';
    11. } else {
    12. echo 'belegt';
    13. }
    14. }
    Display All
  • So,

    Nun hatte ich etwas Zeit gefunden mich damit auseinander zu setzen und habe ein fast brauchbares Ergebnis

    Source Code

    1. <form method="post" action="bestellen.htm?step=2&amp;paket={$PAKET_ID}" id="WhoisForm" onsubmit="return submitForm();">
    2. <fieldset>
    3. <legend><strong>Domain auswählen</strong></legend>
    4. <div>
    5. <label for="whois_domain" accesskey="U">Domain: http://</label>
    6. <input name="whois_domain" type="text" id="whois_domain" required="required" placeholder="domain" /> <select name="whois_tld">
    7. {foreach from=$DOMAIN_LIST item=list}
    8. <option value="{$list.id}" >{$list.end}</option>
    9. {/foreach}
    10. </select>
    11. <input type="submit" name="send" class="button" value="Prüfen" />
    12. <a href="domain-preisliste.htm" title="Domain Preisliste" target="_blank"><strong>Preisliste</strong></a>
    13. </div>
    14. <div class="form_result"> </div>
    15. </fieldset>
    16. <input type="submit" id="whois_domain" class="submit" value="Weiter zu Schritt 2">
    17. </form>
    18. {literal}
    19. <script>
    20. function submitForm() {
    21. $.ajax({type:'POST', url: 'example.php', data:$('#WhoisForm').serialize(), success: function(response) {
    22. $('#WhoisForm').find('.form_result').html(response);
    23. }});
    24. return false;
    25. }
    26. </script>
    27. {/literal}
    Display All


    Source Code

    1. $params = array();
    2. $params['domain'] = $Core->get(POST, 'whois_domain').$row_tld['end'];
    3. $res = $domrobot->call($obj,$meth,$params);
    4. if ( $res['resData']['domain'][0]['status'] == 'free') {
    5. echo 'Frei';
    6. } else {
    7. echo 'belegt';
    8. }


    Jenach Ergebniss liefert er mir nun frei oder belegt zurück.
    2 Sachen fehlen aber noch. Wärend er läd nach dem ich ich prüfen klicke wäre eine Grafik nicht schlecht sitekiwis.com/wp-content/uploads/2010/11/loading.gif
    und das 2: Klicke ich auf Prüfen wird geprüft ob die Domain Frei ist, wenn ich dann auf den 2 Buuton "Weiter zu Schritt 2" klicke soll er mich an die adresse unter action leiten. Immoment prüft er auch bei klick auf diesen Button.

    EDIT: So, mit einem

    Source Code

    1. <img src="images/loading30.gif" id="loadingImage" style="display: none;" />

    und ändern des JS Codes auf

    Source Code

    1. function submitForm() {
    2. $("#loadingImage").show();
    3. $.ajax({type:'POST', url: 'example.php', data:$('#WhoisForm').serialize(), success: function(response) {
    4. $("#loadingImage").hide();
    5. $('#WhoisForm').find('.form_result').html(response);
    6. }});
    7. return false;
    8. }


    klappt das mit der grafik nun. Fehlt nur noch das Absenden wenn ich auf Weiter zu Schritt 2 klicke

    The post was edited 2 times, last by Baldur ().