2013-06-23 2 views
0

Я пытаюсь обновить одно поле через ajax, который не работает. Ниже приведен кодAjax PHP updation не работает

Jquery:

<script type="text/javascript"> 
    function changeStatus(changeStatus,userId) { 
     var data="changeStatus="+changeStatus+"&userId="+userId; 
     $.ajax({ 
      type:'GET', 
      url:'myfunctions.php', 
      data:data, 
      success:function() { 
       alert('Updated'); 
      } 
     }); 
    } 
</script> 

PHP:

<?php 
function changeStatus($changeStatus,$userId){ 
    $userId=$_GET['userId']; 
    $userStatus=$_GET['userStatus']; 
    switch($userStatus) { 
     case "1": 
      $changeStatus=0; 
      break; 
     case "0": 
      $changeStatus=1; 
      break; 
     default: 
      $changeStatus=""; 
    } 
    $Query="UPDATE blog_users SET blog_user_status='$changeStatus' WHERE     blog_user_id='$userId'"; 
    $Result=mysql_query($Query); 
} 

if(isset($_GET['userId']) && isset($_GET['userStatus'])) { 
    changeStatus($changeStatus,$userId); 
} 
?> 

и вот как я вызвать функцию:

<a href="#" onclick="changeStatus($changeStatus,$userId)"><?php echo $action; ?></a> 

Просто, чтобы знать, что я попробовал это только в php путем передачи значений через href. и он работал ...

+0

Я уверен, что это не работает. Вы вызываете переменную за пределами php ($ changestatus $ userId) – JorgeeFG

+0

Я делал то же самое при удалении записи. Он работал ... –

+0

Вы ** широко открыты ** для SQL-инъекций и ** вы будете взломаны **, если вы еще не были. Научитесь использовать подготовленные/параметризованные запросы, чтобы избежать этой проблемы. – Brad

ответ

0
<a href="#" onclick="changeStatus(<?php echo $changeStatus; ?>,<?php echo $userId; ?>)"><?php echo $action; ?></a> 

Попробуйте с этим

+0

Пробовал также это, но никакого ответа. его просто добавление # с URL: \ –

0

Таким образом, вы не используете право получить переменные. В JavaScript вы установите получить переменные changeStatus и userId

var data="changeStatus="+changeStatus+"&userId="+userId; 

Однако в вашем PHP вы получаете userId и userStatus

$userId=$_GET['userId']; 
$userStatus=$_GET['userStatus']; 

Так $userStatus никогда не будет установлен, так как он должен $_GET['userStatus']

Поскольку он пусто. Ваш запрос всегда будет выглядеть так:

"UPDATE blog_users SET blog_user_status='' WHERE blog_user_id='$userId'"; 
+0

Я исправил это .. пока не работает –