2016-08-24 23 views
2

我有一個簡單的表格值:形式發送未進行任何更改

<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> 

而且,我從我的form元素通過AJAX請求發送數據,像這樣:

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); 

我也得到它與我的PHP文件是這樣的:

$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)); 

因此,如果數據設置,我只能看到,AJAX請求是成功的不過,它不會改變我的數據庫中的任何內容。

它應該做什麼?

它應該更新myTable它應該替換舊名稱與新名稱,通過$_POST得到。

這不起作用..怎麼樣?爲什麼?

+2

寫入查詢並不意味着它會被執行。有關如何使用數據庫API的信息,請參閱手冊,在線教程或文檔部分。 –

+0

1-在else if之前驗證你的else if($ change =='username')output var_dump($ change)。 –

+0

不要使用插值 – Aaron

回答

1

如果您使用mysqli:

這是因爲您不執行查詢。試圖取代這一行

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

下面這個例子:

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

希望的作品! :)

+0

$ sql_update = $ mysqli-> query(「UPDATE myTable SET'name' ='$ new_un'WHERE'name' ='$ name'」); 5分鐘前我把它改寫成這樣:D LOL 但是,謝謝你;) –