• Hallo Liebe WordPress Community

    ich versuche mich grade daran Ajax zu verwenden.

    was ich möchte ist, dass bei Auswahl eines Datums automatisch meine Tabelle aktualisiert. Die Query sowie Ausgabe habe ich bereits erfolgreich in der function.php eingebunden.(allerdings nur mit festem Datumsparameter.

    in PHP habe ich die Lösung, bekomme sie aber nicht in WordPress zum Laufen:

    der Code sieht so aus:

    HTML

    <label>Wähle ein Datum </label> <br />
    <input type="date"  size="10" value="<?php echo date('Y-m-d'); ?>" 
    oninput="ajax-select(this.value)" >
    <span id="db-select">hier kommt dann der AJAX-Inhalt</span>
    <script type="text/javascript">
          $(document).ready(function(){
            $("#form1").submit(function(e){
              e.preventDefault();
              $.post("database-select.php",$("#form1").serialize(),function(msg){
                alert(msg);
              });
            });
          });
        </script>
    
    <script>
    function ajax-select(inhalt)
    {
     if (inhalt=="")
     {
      document.getElementById("db-select").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("db-select").innerHTML=xmlhttp.responseText;
      }
     }
     xmlhttp.open("GET","database-select.php?q="+inhalt,true);
     xmlhttp.send();
    }
    </script>

    Ich habe bereits bei einem kleinen Beispiel Probleme hier mein Versuch:

    in der function.php

    
    function hook_ajax_script(){
             wp_enqueue_script( 'my_ajax_script', get_bloginfo('template_url')."/rscripts/robajax.js" );
    }
    add_action( 'wp_enqueue_scripts', 'hook_ajax_script' );
    add_action( 'admin_enqueue_scripts', 'hook_ajax_script' );
    
    add_shortcode( 'ajax1', 'ajax1_shortcode' );
    
    function ajax1_shortcode( $args ) {
    ?>
    <div id="demo">
    <h1>The XMLHttpRequest Object</h1>
    <button type="button" onclick="loadDoc()">Change Content</button>
    </div>
    <?php
    }
    

    meine script Datei:

    function loadDoc() {
      var xhttp = new XMLHttpRequest();
      xhttp.onreadystatechange = function() {
        if (this.readyState == 4 && this.status == 200) {
          document.getElementById("demo").innerHTML =
          this.responseText;
        }
      };
      xhttp.open("GET", "rob.txt", true);
      xhttp.send();
    }
    

    In der Konsole des Browsers sehe ich, das versucht wird auf die rob.txt zuzugreifen, diese allerdings mit 404 nicht gefunden wird.

    Kann mir hier jemand helfen?

    ist es möglich statt meiner database-select.php direkt eine Function aufzurufen?

    über eine kurze Hilfe, vielleicht auch bei diesem Beispiel W3 School Ajax würd mir sicher schon weiterhelfen.

    Ich hoffe ich konnte einigermaßen mein Problem schildern.

    Viele Grüße

    Tommy

    • Dieses Thema wurde geändert vor 6 Jahren, 1 Monat von tommy84.
  • Das Thema „Problem bei eigener Ajax Function“ ist für neue Antworten geschlossen.