Ausgabe ohne Seitenreload

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • 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.

    Quellcode

    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:

    Quellcode

    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. });
    Alles anzeigen

    und im HTML-Code aktuvierst du die Funktion mit

    Quellcode

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


    Thomas

    Dieser Beitrag wurde bereits 4 mal editiert, zuletzt von 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:

    Quellcode

    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.

    Quellcode

    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},});


    Quellcode

    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.

    Quellcode

    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
  • Keine Ahnung was mit diesem Forum los ist warum er das nicht so wirklich formatiert.


    Quellcode

    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. });


    Quellcode

    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>
    Alles anzeigen


    Quellcode

    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. }
    Alles anzeigen
  • So,

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

    Quellcode

    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}
    Alles anzeigen


    Quellcode

    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

    Quellcode

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

    und ändern des JS Codes auf

    Quellcode

    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

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von Baldur ()