2013-06-05 2 views
1

У меня есть этот код здесь, который должен помочь мне обновить номер телефона. Это не делает, хотя, ну, я получаю сообщение с успешно измененным, но без вставки в базу данных.Проблема с использованием ajax для обновления без обновления

Вот мой код: index.php

<script type="text/javascript" > 
$(function() { 
    $(".submit").click(function() { 
     var phone = $("#phone").val(); 

     var dataString = 'phone='+ phone ; 

     if(phone=='') { 
      $('.success').fadeOut(200).hide(); 
      $('.error').fadeOut(200).show(); 
     } else { 
      $.ajax({ 
       type: "POST", 
       url: "update-phone.php", 
       data: dataString, 
       success: function() { 
        $('.success').fadeIn(200).show(); 
        $('.error').fadeOut(200).hide(); 
       } 
      }); 
     } 
     return false; 
    }); 
}); 
</script> 
<div class="modal" style="display: none;"> 
<?php 
if (empty($phone)) { 
?> 
<form method="post" name="form"> 
    <input id="phone" name="phone" type="text" /> 
    <div> 
     <input type="submit" value="Submit" class="submit"/> 
     <span class="error" style="display:none"> Please Enter Valid Data</span> 
     <span class="success" style="display:none"> Registration Successfully</span> 
    </div> 
</form> 

обновление-phone.php

<?php 
require_once('db.php'); 

if($_POST) { 
    $phone = $_POST['phone']; 
    mysql_query("UPDATE users SET phone = '$phone' WHERE ID = 5884 "); 
}else {} 

?> 

Что мне не хватает? Спасибо

+0

эха вашего запроса и в PHPMyAdmin увидеть, если есть какая-либо ошибка, а также проверить соединение с базой данных –

+0

Мне нужна дополнительная информация, прежде чем я смогу дать вам ответ. Что находится в $ _POST (он отправляет нужные вам данные). Вы также не должны использовать if ($ _ POST) ... $ _POST не является логическим, это массив. Try isset() – paquettg

+0

Вы когда-нибудь подключались к базе данных? Из кода, который вы опубликовали, похоже, что вы просто бросаете запрос на небеса и видите, что он будет делать. – Timr

ответ

2

Попробуйте это ..

<?php 
require_once('db.php'); 

if($_POST) { 
    $phone = $_POST['phone']; 
    mysql_query("UPDATE `users` SET `phone` = '$phone' WHERE `ID` = 5884 "); 
}else {} 

?> 
0

Вы пытались проверить запрос ajax с помощью инструментов firebug/tools/etc? Попробуйте добавить echo mysql_error(); сразу после вашего mysql_query.

Не 100% уверен, но это может быть, если ($ _POST) должен быть заменен, если (Исеть ($ _ POST [ 'телефон']))

Попробуйте следующий PHP:

<?php 
require_once('db.hp'); 
if (isset($_POST['phone'])) 
{ 
    $phone = $_POST['phone']; 
    mysql_query("UPDATE users SET phone = '$phone' WHERE ID = 5884 "); 
    echo mysql_error(); 
} 
else 
{ 
    echo "Failed"; 
} 
?> 

EDIT: Вы подтвердили, действительно ли он обновляет БД? Кроме того, вы должны также дезинфицировать ваш вклад и рассмотрите прокатку с MySQLi вместо mysql_ *

+0

, вы не хотите проверять, установлен ли $ _POST ['phone'], вы хотите проверить, установлен ли $ _POST. Проверка $ _POST ['phone'] вызовет предупреждение о том, что $ _POST ['phone'] не установлен, поскольку он попытается получить значение перед передачей его в isset. – paquettg

+0

Не было бы установлено $ _POST? Кроме того, как проверить isset ($ _ POST ["phone"]) вызвать предупреждение? – ohej

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