2017-02-14 4 views
1

Я пытаюсь редактировать два столбца с помощью ajax и php.My код в настоящее время редактирует одно значение (имя) в моей таблице и сохраняет его в моей базе данных. Когда я добавляю вторую переменную (p), мой ajax вызывайте его, обновляя оба столбца p и y с тем же значением. Как изменить третье значение и присвоить ему другое значение из yI, чтобы два разных столбца имели разные значения в моем db (столбцы: имя и емкость)Редактировать несколько значений в ajax

этот код редактирования и обновления два значения:

<script type="text/javascript"> 
jQuery(document).ready(function() { 
     $.fn.editable.defaults.mode = 'popup'; 
     $('.xedit').editable();  
     $(document).on('click','.editable-submit',function(){ 
      var x = $(this).closest('td').children('span').attr('id'); 
      var y = $('.input-sm').val(); 
      var z = $(this).closest('td').children('span'); 
      $.ajax({ 
       url: "process.php?id="+x+"&data="+y, 
       type: 'GET', 
       success: function(s){ 
        if(s == 'status'){ 
        $(z).html(y);} 
        if(s == 'error') { 
        alert('Error Processing your Request!');} 
       }, 
       error: function(e){ 
        alert('Error Processing your Request!!'); 
       } 
      }); 
     }); 
}); 
</script> 

и это то, что я пытался редактировать три значения:

 <script type="text/javascript"> 
jQuery(document).ready(function() { 
     $.fn.editable.defaults.mode = 'popup'; 
     $('.xedit').editable();  
     $(document).on('click','.editable-submit',function(){ 
      var x = $(this).closest('td').children('span').attr('id'); 
      var y = $('.input-sm').val(); 
      var p = $('.input-sm').val(); 
      var z = $(this).closest('td').children('span'); 
      $.ajax({ 
       url: "process.php?id="+x+"&data="+y+"&capacity="+y, 
       type: 'GET', 
       success: function(s){ 
        if(s == 'status'){ 
        $(z).html(y); 
        $(z).html(p);} 
        if(s == 'error') { 
        alert('Error Processing your Request!');} 
       }, 
       error: function(e){ 
        alert('Error Processing your Request!!'); 
       } 
      }); 
     }); 
}); 
</script> 

И мой Heres PHP файл (process.php)

<?php 
include("connect.php"); 
if 
    ($_GET['id'],$_GET['capacity'] and $_GET['data']) 
{ 
    $id = $_GET['id']; 
    $data = $_GET['data']; 
    $capacity = $_GET['capacity']; 
    if(mysqli_query($con,"update mytable set name='$data',capacity='$data' where id='$id'")){ 

     echo "success"; 
    } 

else{ 
echo 'failed'; 
} 

} 
?> 

И мой стол в index.php

<tbody> 
        <?php 
        $query = mysqli_query($con,"select * from mytable"); 
        $i=0; 
        while($fetch = mysqli_fetch_array($query)) 
        { 
         if($i%2==0) $class = 'even'; else $class = 'odd'; 

         echo'<tr class="'.$class.'"> 

          <td><span class= "xedit external-event bg-brown" id="'.$fetch['id'].'">'.$fetch['name'].'</span></td> 

          <td><span class= "xedit external-event bg-brown" id="'.$fetch['id'].'">'.$fetch['capacity'].'</span></td> 

         </tr>';       
        } 
        ?> 
        </tbody> 
+0

ваша просто емкость опечатки = $ данные выглядят эту строку и изменить его в емкость = $ емкости: если (mysqli_query ($ жулик, "обновление туЬаЫе набор имя =„$ данных“, емкость =„$ мощности“, где id = '$ id' ")) – JYoThI

+1

никогда не видел такого рода условие IF, если ($ _ GET ['id'], $ _ GET ['capacity'] и $ _GET ['data']). это должно быть, если ($ _GET ['id'] && $ _GET ['capacity'] && $ _GET ['data']) – JYoThI

+0

@JYoThI im все еще учится. –

ответ

0

У вас есть ошибка в вашем SQL запросе. Поскольку вы не передаете правильные параметры. См. Ниже код.

$id = $_GET['id']; 
$data = $_GET['data']; 
$capacity = $_GET['capacity']; 

// Check Sql 
$query = "update mytable set name='$data',capacity='$capacity' where id='$id'"; 
if(mysqli_query($con,$query)){ 

    echo "success"; 
} else{ 
    echo 'failed'; 
} 
+0

Ive исправил эту ошибку. Я все равно получаю оба столбца, обновляя те же данные –

+0

Пожалуйста, смотрите это var y = $ ('. Input-sm'). Val(); var p = $ ('. Input-sm'). Val(); var z = $ (this) .closest ('td'). Children ('span'); $ .ajax ({ URL-адрес: "process.php? Id =" + x + "& data =" + y + "& capacity =" + y, в значении y и p выглядят одинаково, а URL-адрес вы создавая в том, что вы передаете данные и емкость как со значением 'y '. Таким образом, на стороне сервера он будет обновлять одно и то же значение для обоих столбцов. есть некоторая проблема на стороне клиента. Кажется' y' и 'p' оба указывают на тот же элемент html, получая такое же значение. Можете ли вы проверить и посмотреть – Naincy

+0

нормально, спасибо, я изменил это ... но столбцы строк все еще обновляются с тем же значением. Я сделал это: var x = $ (this) .closest (' td '). children (' span '). attr (' id '); \t \t \t var y = $ ('. input-sm '). val(); var p = $ ('. input-sm ') .val(); \t \t \t var z = $ (this) .closest ('td'). Children ('span'); url: "process.php? id =" + x + "& data =" + y + "& capacity =" + p, –

1

1) ваш просто опечатка ошибка: capacity=$data смотрите эту строку и изменить его на capacity=$capacity:

if(mysqli_query($con,"update mytable set name='$data',capacity='$capacity' where id='$id'")) 

2) И принять смотреть в случае, если состояние слишком .finally ваш код должен быть.

 <?php 

     include("connect.php"); 
     if($_GET['id'] && $_GET['capacity'] && $_GET['data']) 
     { 
      $id = $_GET['id']; 
      $data = $_GET['data']; 
      $capacity = $_GET['capacity']; 
      if(mysqli_query($con,"update mytable set name='$data',capacity='$capacity' where id='$id'")) 
      { 

       echo "success"; 
      } 
      else 
      { 
       echo 'failed'; 
      } 

     } 

     ?> 
+0

Great.What относительно значений x и y в ajax, они остаются теми же. Рассмотрение x - это значение данных, а y - append –

+0

url: "process.php? Id =" + x + "& data =" + y + "& capacity =" + y, почему данные и емкость имеют одинаковое значение y ?? – JYoThI

+0

прежде всего предупредить x y p и знать, что вы получаете правильные значения или нет? – JYoThI

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