PHP Funktion mit ajax ausführen?

slipknoter6

Mitglied
Hallo
brauch mal eure hilfe :)
Ich will meine PHP Funktion mit einen Button Klick ausführen. Nur onClick akzeptiert ja kein php sonder javascript.
Wie kriege ich das hin das ich meine Funktion dadrüber aufrufe?

Funktion:
Update_Rotator_Link("TabelleXYZ", '.$zeile["link"].', "0", '.$zeile["id"].')

<button onclick="Update_Rotator_Link("TabelleXYZ", '.$zeile["link"].', "0", '.$zeile["id"].')" type="button" class="btn btn-danger">Deaktivieren</button>

Der Button ist immer anders jenachdem ob in der MYSQL tabelle 0 oder 1 steht. Steht auf dem Button Aktivieren oder Deaktiveren.

Kann mir das einer erkläre wie ich das umsetzte das ich meine Funktion aufrufe?
 
Im Titel deines Threads hast Du doch schon die Lösung angegeben: Ajax.

Das kommt mir bekannt vor, dazu hast Du doch schon einen anderen Thread? Dort findest Du ein Beispiel für einen Ajax-Aufruf mit jQuery.
 
ist richtig. Aber weiß nicht wie ich das umsetzen soll.
HAb das jetzt so gemacht
PHP:
 <script type="text/javascript">
     function Rotator_Deaktiv(link,id)
     {
          var link=link;
          var id=id;
         document.write("<?PHP Update_Rotator_Link('rotator_ctc', '"+link+"', '0', '"+id+"');?>");
     }
     function Rotator_Aktiv(link,id)
     {
         var link=link;
         var id=id;
         document.write("<?PHP Update_Rotator_Link('rotator_ctc', '"+link+"', '1', '"+id+"');?>");
     }
     </script>

Problem der führt das sofort aus! Nicht erst wenn man auf den Button Clickt

onclick="Rotator_Deaktiv("'.$zeile["link"].'","'.$zeile["id"].'")"
 
Zuletzt bearbeitet:
Ja genau, das ist der Thread, den ich meinte.
Der Button ist immer anders jenachdem ob in der MYSQL tabelle 0 oder 1 steht. Steht auf dem Button Aktivieren oder Deaktiveren.
Verstehe ich das jetzt richtig? Der Code aus dem ersten Thread funktioniert, aber ich habe es etwas falsch verstanden: Die Beschriftung des Butttons soll sich ändern, nicht das Attribut "disabled"? Dann müsste es so aussehen:
Code:
<input id="link" onchange="checklink(this);" type="text" class="form-control" id="usr" name="ref" value="der link">
<button id="aktdeakt" onclick="aktdeakt(this);"></button>
<script>
    function checklink(ele) {
        var params = {link: ele.value};
        $.ajax({
            url: "testentry.php",
            method: "POST",
            data: params,
            success: function(output) {
               if (output == "activate") {
                    $("#aktdeakt").val("1").text("Aktivieren");
               } else {
                    $("#aktdeakt").val("0").text("Deaktivieren");
                }
            },
            error: function(/* Params entspr. Doku */) {
               // Hier ggf. die Parameter zu Diagnosezwecken auswerten
           }
        });
    }
    function aktdeakt(ele) {
        var params = {
            link: $("#link").val(),
            val: ele.value
        };
        $.ajax({
            url: "change-rotator.php",
            method: "POST",
            data: params,
            success: function(output) {
                console.log("Rotator wurde umgeschaltet");
            },
            error: function(/* Params entspr. Doku */) {
               // Hier ggf. die Parameter zu Diagnosezwecken auswerten
           }
        });
    }
</script>

change_rotator.php:
PHP:
<?php
    $link = $_POST['link'];
    $val = $_POST['val'];
    // Wo kommt die ID her?
    Update_Rotator_Link('rotator_ctc', $link, $val, $id);
?>
So habe ich es jetzt verstanden. Keine Ahnung, ob es richtig ist.
 
Nein Falsch.
Das erste theard ist sozusagen für den User damit er ein Link eintragen kann. Jetzt hier ist das der Admin die Links alle in einer Tabelle sieht und sie dann entweder Aktivieren oder Deaktivren kann. Wenn ein Link schon Aktiv ist kann man ihn halt nur auf Deaktiv machen und umgekehr genau so. Was ich will ist wenn man auf den Button klick Aktivieren/Deaktiviren. Soll mein PHP Funktion aufgerufen werden wo der MYSQL befehl drin ist. Problem ist habe dort keine Form oder sowas derwegen brauch ich für die funktion paar info (ID und Link). damit der mysql befehl funktioniert. Die Info werden aber erst mit der Tabell zugewissen. Weil ich tabelle ja auch schon aus MYSQL Auslese. ich muss quasi FunctionAJAX(ID,Link) ---> FuznktionPHP(ID,Link) nur wie :D
 
Verstehe: Die Links stehen in einer MySQL-Tabelle und haben einen Status "aktiv", der 0 oder 1, bzw. true oder false sein kann. Dann müsstest Du auf Basis der Tabelle erst Mal die Buttons anlegen, etwa so:
PHP:
// SQL-Abfrage, um die Daten aus der Tabelle auszulesen
// die Daten stehen dann in $row
    if ($row['status'] == '1') $text = "Deaktivieren"; else $text = "Aktivieren";
    echo '<button class="change-rotator" data-id="' . $row['id'] . '" data-link="' . $row['lin'] . '" value="' . $row['status'] . '">' . $text . '</button>';
Soweit richtig?
 
JA soweit richtig.
Ich habe das mal jetzt versucht zu verstehen.
Code:
 <script>
function Rotator_Change(link,id,status) {

  var params = {
       link: link.value
       id: id.value
       status: status.value
       };
       $.ajax({
            url: "./includes/update_rotator.php",
            method: "POST",
            data: params,
            success: function(output) {
              alert("Erfolgreich");
            },
            error: function(/* Params entspr. Doku */) {
               // Hier ggf. die Parameter zu Diagnosezwecken auswerten
           }
        });
     }
     </script>
Das ist das script so wie es sein müsste?

Dann die button sind bischen caotisch :D
PHP:
if($zeile["aktiv"] == 1) {echo '<td><button onclick="Rotator_Change(\''.$zeile["link"].'\',\''.$zeile["id"].'\', \'0\')" type="button" class="btn btn-danger">Deaktivieren</button></td>'; }
          else {echo '<td><button onclick="Rotator_Change(\''.$zeile["link"].'\',\''.$zeile["id"].'\', \'1\')" type="button" class="btn btn-success">Aktivieren</button></td>'; }

Dann habe ich jetzt eine datei erstellt namens update_rotator.php

PHP:
<?php
include_once 'includes/functions.php';
    $link = $_POST['link'];
    $val = $_POST['id'];
    $status = $_POST['status'];
    Update_Rotator_Link('rotator_ctc', $link, $status, $val);
?>

dort wird halt die funktion auf gerufen die in includes/functions.php gespeichert ist.

nur so wie das jetzt ist funktioniert das nicht irgenwo ist ein fehler :D
 
Von der großen Richtung her müsste es so funktionieren. Poste doch mal das generierte HTML aus der Quelltextansicht deines Browsers. Oder besser die URL, falls die Seite online ist.
 

Neue Beiträge

Zurück