2014-11-15 18 views
9

Veritabanı üzerinden php kullanarak bir tablo biçiminde bazı değerler gösterdim. Tablonun bir sütunu düzenleme için ayrılmıştır. Tablonun her satırının düzenlenebilir olmasını dilerim. düzenlemek içinBir tablonun belirli bir satırını, o satırın kimliğini kullanarak düzenleyin.

Kod modal kullanılan

echo"<td class='success'><button class='btn blue' data-toggle='modal' data-target='#myeditModal'>Edit </button></td>"; 

Kod edit.php sayfası için

<div class="modal fade" id="myeditModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true"> 
    <div class="modal-dialog"> 
     <div class="modal-content"> 
      <div class="modal-header"> 
       <button type="button" class="close" data-dismiss="modal"><span aria-hidden="true">&times;</span><span class="sr-only">Close</span></button> 
       <h4 class="modal-title" id="myModalLabel">Edut Treatment</h4> 
      </div> 

      <div class="modal-body"> 
       <form class="form-horizontal" role="form" action="edit.php?id="$row['id']"" enctype="multipart/form-data" method="post"> 
        <div class="form-group"> 
         <label class="col-lg-4 control-label"> Name</label> 
          <div class="col-lg-6"> 
           <input class="form-control" value="" type="text" name="name" > 
          </div> 
        </div> 

        <div class="form-group"> 
        <label class="col-md-3 control-label"></label> 
         <div class="col-md-8"> 
          <input class="btn btn-primary" value="Save Changes" type="submit" name="submit"> 

          <span></span> 
         </div> 
        </div> 
       </form> 

      </div> 
      <div class="modal-footer"> 
       <button type="button" class="btn btn-default" data-dismiss="modal">Close</button> 
      </div> 
     </div> 
    </div> 
</div> 

Kod

<?php 
include('admin_session.php'); 
$con=mysqli_connect("localhost","root","","db"); 

// Check connection 
if (mysqli_connect_errno()) { 
echo "Failed to connect to MySQL: " . mysqli_connect_error(); 
} 

$id = $_GET['id']; 

mysqli_query($con,"UPDATE treatment_type SET name='".$name.'" WHERE id='".$id."'"); 
mysqli_close($con); 
header("Location: abc.php"); 
?> 

Benim sorundur olduğunu olduğunu ben edit.php ulaştığınızda Sayfayı şu şekilde aldım: http://example.com/xyz/edit.php?id=

Tablonun belirli bir satırını düzenleyemediğim için kimliği taşıyamıyorum.

+0

Eğer tanımını ve $ sıranın bir var dökümü gösterebilir misin? – Stefan

+0

Peki, düzenleme düzenine satır geçirebilmek için javascript veya jquery kullanmanız gerektiğini söyleyebilirim, sonra düzenleme sayfasını görüntülemek için ajax araması yapın. Aksi takdirde sayfanıza multiplt modal sayfaları çıkacaksınız – KyleK

+0

@ Arif_suhail_123 Haklısınız! – Stefan

cevap

2

URL'yi doğrudan doğrulamak için uygunsa. Çünkü GÜNCELLEME ekstresinde bu hattın Büyük olasılıkla:

WHERE id='".$id."'"); 
      ^^^^^^^ 

İkinci düzgün sıralı id yankı:

action="edit.php?id=<?php echo $row['id']; ?>" 

Ve $name tanımlanmış olduğundan emin olun.

Ve neden yerine hazır deyimleri kullanmayın:

if(isset($_GET['id'], $_GET['name'])) { 
    $con = mysqli_connect("localhost","root","","db"); 

    // Check connection 
    if (mysqli_connect_errno()) { 
     echo "Failed to connect to MySQL: " . mysqli_connect_error(); 
    } 

    $id = $_GET['id']; 
    $name = $_GET['name']; 

    $sql = 'UPDATE treatment_type SET name = ? WHERE id = ?'; 
    $update = $con->prepare($sql); 
    $update->bind_param('si', $name, $id); 
    $update->execute(); 

    if($update->affected_rows > 0) { 
     header("Location: abc.php"); 
    } else { 
     echo 'did not update'; 
    } 
} 
+0

@ Arif_suhail_123 evet akışını anlıyorum.Model açıldığında, içindeki tüm alanları içeren bir form gösterecektir. asıl problem 'echo $ row ['id'];' id 'doğru olarak yankılamamış olduğundan, gönderildiğinde, form kimliği iyi gönderemediğinden dolayı. – Ghost

+0

@ Arif_suhail_123 iyi, bazı eksikler var OP'nin nasıl bir isim olduğunu bilmediğimizden beri ele alınması gereken parçalar. Aslında kyle'ın cevabı iyi, eğer OP koyarsa ve cevaplarımızı kullanırsa, bu sorunların her ikisini de ele almalı. alınmış :) – Ghost

+0

@Ghost hala aynı sorunu alıyorum ve hazırlanan deyimi kullanırken Parse hatası hatası aldım: sözdizimi hatası, beklenmedik ';' Güncelleştirme sorgusunda ve kaldırmayı başaramıyorum – Sam

2

şimdi buna sahip şekilde, bu değiştirmek gerekir ..

<form class="form-horizontal" role="form" action="edit.php?id='<?php echo $row['id'];?>'" enctype="multipart/form-data" method="post"> 

çıkışı için kimliğini corerectly forma.

Ancak bu şekilde, her satır için birden çok farklı modal formunuz var mı?

Yalnızca modal'i bir kez görüntülemeli, ardından kimliği jquery/javascript yoluyla modal'a geçirmeli, ajax istek verilerini görüntülemeli ve sonra onu düzenlemelisiniz.

onun sadece bir satır, bu satırda herhangi bir değeri düzenleme yeteneği ile birden tablo satırlarını, isterseniz Ama sonra kesinlikle ajax/jquery/javascript

Örnek kullanmak gerekir, ince olması gerekiyorsa

PHP ... bir modal penceresini kullanarak ve jquery yoluyla kimliğini geçen

echo"<td class='success'><button class='btn blue editButton' data-id='<?php echo $row['id'];?>' >Edit </button></td>"; 

jQuery

$(document).ready(function(){ 
    //Click button, apply id, and open modal. 
    $('.editButton').click(function(){ 
     var id = $(this).data('id'); 
     //Apply action with id to form 
     $('#myForm').attr('action','edit.php?id='+id); 
     //Open modal 
     $('#myModal').modal({background:'static'}); 
    }): 

    //If you want values to come into the modal you need to do a sepereate ajax call to get the one particular element from database. 


    }); 
+0

Hala aynı url alıyorum ve hata alıyorum Parse hatası: sözdizimi hatası, güncelleştirme sorgusunda beklenmeyen '' ' – Sam

+0

Peki o zaman sonuçların nasıl elde edildiğini göstermiyorsunuz ve dolanıp $ satır değişkeni formata benzer bir şey içeriyor gibi görünüyor mysql_fetch_array kullanmak ve döngü – KyleK

İlgili konular