Ergebnis 1 bis 6 von 6

Thema: AJAX Post & MySQL UPDATE

  1. #1
    Neuer Benutzer
    Registriert seit
    20.03.2018
    Beiträge
    3

    Frage AJAX Post & MySQL UPDATE

    Hallo, ich möchte per Ajax eine Spalte im Kalender speichern, leider werden die Änderungen nicht in der Datenbank übernommen. Findet eventuell jemand meinen Fehler? Danke im Voraus.

    HTML-Code:
    <head>
    <script src="/res/jquery-3.3.1.min.js"></script>
    </head>
    <bod>
    <input name="id" type="hidden" value="1" name="id1" id="id1">
    <textarea class="update" cols="30" rows="3" name="content1" id="content1" required></textarea>
    <button type="submit" class="form-submit" name="submit1" id="submit1">Speichern</button>
    <script>
    $("#submit1").click(function(){
    	var id = $('#content1').val();     
    	var text = $('#id1').val();
    	
    	$.ajax({
    		url : "calendar.php",
    		type: "POST",
    		data: 'id='+id+'&text='+text,
       		success: function(response)
    			{
    				$('#id1').val();
            		$('#content1').val('');
    			}
    	}); 
    });
    </script>
    </body>
    PHP-Code:
    if(isset($_POST['text']) && isset($_POST['id'])) {
        
    $sql "UPDATE wbs_calendar set calendar_content = '".$_POST["text"]."' WHERE calendar_id=".$_POST["id"];
        
    mysqli_query($db$sql);


  2. #2
    Moderator
    Registriert seit
    04.05.2012
    Beiträge
    2.680
    Probiere mal data so zu setzen: data: { id: id, text: text}
    Pakete werden jetzt mit $_DHL geliefert... nicht mehr mit $_POST

  3. #3
    Neuer Benutzer
    Registriert seit
    20.03.2018
    Beiträge
    3
    Hatte ich auch schon, leider ohne Erfolg.

  4. #4
    Moderator
    Registriert seit
    04.05.2012
    Beiträge
    2.680
    Also derzeit gibt es, zumindest in dem Code den zu zeigst, kein output vom server. du musst schon irgendwas ausgeben mittels z.b. echo
    Pakete werden jetzt mit $_DHL geliefert... nicht mehr mit $_POST

  5. #5
    Erfahrener Benutzer
    Registriert seit
    09.12.2014
    Beiträge
    559
    versuchs mal andersrum

    mach mal PHP seitig aus dem $_POST ein $_GET oder gar $_REQUEST

    ggf schau ob er überhaupt in das update IF rein geht und was so im payload steht print_r($_REQUEST);

  6. #6
    Neuer Benutzer
    Registriert seit
    20.03.2018
    Beiträge
    3
    PHP-Code:
    <?php
    define 
    ('MYSQL_HOST',    'localhost');
    define ('MYSQL_USER',    'x');
    define ('MYSQL_PASS',    'x');
    define ('MYSQL_DB',        'x');
    $db mysqli_connect(MYSQL_HOST,
                            
    MYSQL_USER,
                            
    MYSQL_PASS,
                            
    MYSQL_DB
                            
    )
            or die(
    'No connection to database');

    mysqli_set_charset($db,"utf8");

    if(isset(
    $_POST['text']) && isset($_POST['id'])) { 
        
    $sql "UPDATE wbs_calendar set calendar_content ='".mysqli_real_escape_string($db,$_POST["text"])."' WHERE calendar_id=".intval($_POST["id"]); 
        
    mysqli_query($db$sql);
    }
    ?>

    <!DOCTYPE HTML>
    <html>
    <head>
        <title>Test</title>
        <meta charset="utf-8" />
        <meta name="robots" content="noindex, follow">
        <meta name="viewport" content="width=device-width, initial-scale=1">
        <script src="jquery-3.3.1.min.js"></script>
    </head>
    <body>

    <input type="hidden" value="1" name="id1" id="id1">
    <textarea class="update" cols="30" rows="3" name="content1" id="content1" required></textarea>
    <button type="submit" class="form-submit" name="submit1" id="submit1">Speichern</button>
    <script>
    $("#submit1").click(function(){
        var id = $('#id1').val();     
        var text = $('#content1').val();
        
        $.ajax({
            url : "index.php",
            type: "POST",
            data: {id:id,text:text},
               success: function(response)
                {
                    $('#id1').val();
                    $('#content1').val('');
                }
        }); 
    });
    </script>

    </body>
    </html>
    Habe das mal Alles in einer index.php gepackt. Habe den Datenbank Befehl getestet (also Werte mit Hand angegeben) und es funktioniert. Nun ist es so wie in dem Code & es passiert Nichts wenn ich auf Speichern gehe oder kann ich irgendwie jetzt noch auslesen was passiert wenn ich den Button klicke?

    Also laut Developer Tools von Chrom wird folgendes gesendet:
    Code:
    Array
    (
        [id] => aaaaa
        [text] => 1
    )
    Text & ID waren vertauscht....... Ich Depp.

    Danke für die Hilfe. Werde jetzt noch versuchen den Button Rot zu machen beim klicken in die Textarea & grün nach dem Speichern....^^

    Der Code oben funktioniert so wie er ist. Vielleicht kann den Code Schnippsel ja jemand gebrauchen.
    Geändert von Muetze (20.03.2018 um 23:19 Uhr)

Stichworte

Lesezeichen

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •