• Das Erstellen neuer Accounts wurde ausgesetzt. Bei berechtigtem Interesse bitte Kontaktaufnahme über die üblichen Wege. Beste Grüße der Admin

Ajax-Anfrage übernimmt Inhalt vom Textfeld nicht beim Eintragen in Datenbank

good-freezer

New member
Hallo,
ich versuche mit dieser Abfrage:
Code:
<input type="text" name="reihe2" /> <button type="button" name="reihe" id="'.$row["id"].'" class="btn btn-warning btn-xs reihe"><i class="bi bi-arrow-repeat"></i></button>
welche dieses Ajax Script aufruft:
Code:
            /* Reihe Start */
            $(document).on('click', '.reihe', function(){
                var user_id = $(this).attr("id");
                if(confirm("Reihenfolge wirklich ändern?"))
                {
                    $.ajax({
                        url:"reihe.php",
                        method:"POST",
                        data:{user_id:user_id},
                        success:function(data)
                        {
                            
                            dataTable.ajax.reload();
                        }
                    });
                }
                else
                {
                    return false;
                }
            });
            /* Reihe ende */
und mit dem reihe.php script arbeitet:
Code:
<?php

include('db.php');
include("function.php");

if(isset($_POST["user_id"]))
{

    $statement = $connection->prepare(
        "UPDATE news SET reihe AS :reihe WHERE id = :id"
    );
    $result = $statement->execute(
        array(
            ':id'    =>    $_POST["user_id"],
            ':reihe'    =>    $_POST["reihe2"]
        )
    );

    if(!empty($result))
    {
        echo 'Reihe geändert';
    }
}
die Reihenfolge in einer Datenbank-Tabelle zu ändern.

Diese Spalte reihe ist vom Typ Integer. Wie es aussieht, wird der Inhalt des Textfeld Reihe nicht mit in den Ajax-Request übernommen.
Heißt, die Abfrage wird gestartet, die MELDUNG: "Reihenfolge wirklich ändern?" kommt, ich erhalte keine Fehlermeldung aber in der Tabelle news wird leider nicht der Wert aus dem Textfeld in der Spalte reihe eingetragen:cautious:

Ich habe nun schon lange rumprobiert und wäre für einen Lösungsansatz oder Tipp sehr dankbar.

Beste Grüße, Ingo
 
Hi!
Wenn du in reihe.php gaaaaanz am Anfang alle $_POST Variablen ausgibst, welche hat dann welchen Wert?
Und zum AJAX request ist meine Frage, wo du die Syntax data:{user_id:user_id} her hast.
 
Danke für Deine Antwort:)

ok, ich habe jetzt mal in der Reihe.php ganz oben dies eingefügt:
Code:
<?php
var_dump($_POST);
...weiter mit dem restlichen reihe.php Quelltext...
Leider werden mir so die Postvariablen nicht angezeigt.

die Syntax data:{user_id:user_id} habe ich modifiziert von meinem Lösch-Button genommen, welcher auch Problemlos den entsprechenden Datensatz löscht. Die Sytax hierzu lautet:
Button
Code:
<button type="button" name="delete" id="'.$row["id"].'" class="btn btn-danger btn-xs delete"><i class="bi bi-trash"></i></button>
Ajax
Code:
            $(document).on('click', '.delete', function(){
                var user_id = $(this).attr("id");
                if(confirm("Datensatz wirklich löschen?"))
                {
                    $.ajax({
                        url:"delete.php",
                        method:"POST",
                        data:{user_id:user_id},
                        success:function(data)
                        {
                            dataTable.ajax.reload();
                        }
                    });
                }
                else
                {
                    return false;
                }
            });
delete.php
Code:
<?php

include('db.php');
include("function.php");

if(isset($_POST["user_id"]))
{
    $image = get_image_name($_POST["user_id"]);
    if($image != '')
    {
        unlink("upload/" . $image);
    }
    $statement = $connection->prepare(
        "DELETE FROM news WHERE id = :id"
    );
    $result = $statement->execute(
        array(
            ':id'    =>    $_POST["user_id"]
        )
    );

    if(!empty($result))
    {
        echo 'Data Deleted';
    }
}
 
data:{user_id:user_id},
-> da solltest du auch reihe2 übergeben.
Code:
data:{user_id:user_id, reihe2:$('input[name=reihe2]').val()},
 
Hi mo,
vielen Dank für die Quelltextergänzung. Ich habe die Zeile mit Deinem Quelltext angepasst.
Leider findet immer noch kein Update in der Datenbank statt.

Die reihe.php passt dann doch weiter so:
Code:
<?php

include('db.php');
include("function.php");

if(isset($_POST["user_id"]))
{

    $statement = $connection->prepare(
        "UPDATE news SET reihe AS :reihe WHERE id = :id"
    );
    $result = $statement->execute(
        array(
            ':id'    =>    $_POST["user_id"],
            ':reihe'    =>    $_POST["reihe2"]
        )
    );

    if(!empty($result))
    {
        echo 'Reihe geändert';
    }
}
...oder muss ich hier auch noch was ergänzen?
 
ok etwas zu früh gefreut, er trägt zwar etwas ein- aber wenn ich jetzt darunter in einem Datensatz eine weitere Zahl in der Tabelle über ein Textfeld eintrage wird hier die erste eingebende Zahl und nicht die aktuelle eingetragen:unsure:

Wenn noch jemand eine Idee hat- gerne melden.
Wenn ich die Lösung finde werde ich diese hier posten...
 
Zurück
Oben