2016-08-24 3 views
2

Ich habe eine einfache Form:Form sendet Werte, die nicht etwas zu ändern sind

<form id="change_id" action="change.php?change=profile" 
     method="POST" enctype="multipart/form-data"> 
    <input id="change_username" required name="jmeno_new" 
      type="text" placeholder="New Username"> 
</form> 

Auch ich bin über AJAX-Request wie so Daten von meinem form Elemente zu senden:

save_button.addEventListener('click', function() 
{ 
    var fd = new FormData(change_id); 
    XXHR().request(change_id.getAttribute("action"), function(r){ 
     var obj = JSON.parse(r); 
     if (obj.type == 'success') 
     {} 

     else if (obj.type == 'success_un') 
     { 
      console.log("YEAH! THAT WORKS."); 
     } 
    }, function(){}, true, fd); 
}, false); 

Und ich es mit meiner PHP-Datei wie folgt:

$new_un = $_POST['jmeno_new']; 
$sql_update = ("UPDATE myTable SET `name`='$new_un' WHERE `name`='$name'"); 
$out = array('type' => 'success_un'); 
exit(json_encode($out)); 

also, wenn die Daten festgelegt ist, kann ich sehen, nur dass AJAX-Request war Erfolg voll, aber es ändert nichts in meiner Datenbank.

Was sollte es tun?

Es sollte myTable aktualisieren, wo es den alten Namen durch den neuen ersetzen sollte, erhalten über $_POST.

Das funktioniert nicht .. wie? Warum?

+2

Schreiben einer Abfrage bedeutet nicht, dass es ausgeführt wird. Wie Sie mit der Datenbank API arbeiten, erfahren Sie in den Handbüchern, Online-Tutorials oder im Dokumentationsabschnitt. –

+0

1- Validieren Sie Ihre else if ($ change == 'username') Ausgabe var_dump ($ change) vor dem else if. –

+0

Verwenden Sie keine Interpolation – Aaron

Antwort

1

Falls Sie mysqli verwenden:

Das ist, weil Sie nicht eine Abfrage ausführen. Versuchen Sie, diese Linie

$sql_update = ("UPDATE myTable SET `name`='$new_un' WHERE `name`='$name'"); 

mit diesem ersetzen unten:

$your_connection_variable->query("UPDATE myTable SET `name`='$new_un' WHERE `name`='$name'"); 

Hoffnung, das funktioniert! :)

+0

$ sql_update = $ mysqli-> query ("UPDATE myTable SET' name' = '$ new_un' WO 'name' = '$ name'"); Vor 5 Minuten habe ich es zu diesem umgeschrieben: D LOL aber danke Mann;) –

Verwandte Themen