2016-08-24 4 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 ($ change == 'username'), выведите var_dump ($ change) перед else if. –

+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 , но спасибо человеку;) –

Смежные вопросы