Hallo PHP hulp! Ik heb een vraag: Hoe kan ik ervoor zorgen dat als ik op een plaatje druk dat die de data verwijderd van dat id. Hieronder screens met wat duidelijkere uitleg.


Dat is hoe de pagina eruit ziet, en als je op dat kruisje drukt, moet de data van die rij worden verwijderd. Maar dat is moeilijker door dit (denk ik):

Je kan hier geen form doen, zodat die de data kan met method"POST" of method "GET" kan gebruiken. Enige ideeën hoe ik kan zorgen dat als je op dat plaatje drukt dat de data verwijderd wordt met een SQL met het id wat daar links staat bij 'id'.

Mvg,
Rob

The variable ‘id’ is then set with the value of the delete button id which would could be the id of the row in the database that you want to delete. This is then posted to the page delete.php.

Met andere woorden: Er wordt dus delete.php aangeroepen, waarin je dan een DELETE-query uitvoert om je ID te verwijderen.
Okay, ik zal het proberen!
Prima, we horen wel of het wel of niet lukt.
Ik zal het ongeveer zo doen, heb ik even snel gemaakt

$row['verwijder'] = '<img class="remove" id="567" src="http://countrywidesucks.co.uk/images/tick-no.png" draggable="false" style="width: 15px; height: 15px;" border="0" />';


De img heeft nu een class die gebruikte wordt voor een click functie met jquery. Daarna heeft deze een id (567) gekregen, is id uit database. Nu kan je het volgende doen in jquery


$(document).ready(function()){
   $('.remove').on('click', function()){
      // krijg element waarop je klikt met this
      var remove_id = $(this).attr('id');

      // ajax request
      $.ajax({
         url:"hier_script_die_delete_query doet",  
         type : 'POST',
         // Type data dat je terug verwacht van php script, in dit geval json
         dataType : "json",
         // stuur als post request param, die je kan gebruiken in je php script
         data : param : {id : remove_id },
         // callback function data (data is de response die je van php krijgt)
         success:function(data) {
            // hier heb je meerdere opties::
            // pagina refreshen
            // met jquery de row verwijderen
         }
      });
   });
}


Ik heb de code zo even uit me hoofd getypt kunnen foutjes in zitten, hoop dat je hier wat aan hebt.
Nope, werkt niet :C


<?php
// Script voor het verwijderen van promotag
$sql = "DELETE FROM paneel_promotags WHERE id='$id'";
				if (mysqli_query($con,$sql) === true) {
				header('Location: /paneel/admin/promotag/overzicht');

			} else {
				
				}
?>



JavaScript

				<script type="text/javascript">
$(document).ready(function() {
$('').hide();
});

$(function() {
$(".delete").click(function() {
$('').fadeIn();
var commentContainer = $(this).parent();
var id = $(this).attr("id");
var string = 'id='+ id ;
	
$.ajax({
   type: "POST",
   url: "verwijderen.php",
   data: string,
   cache: false,
   success: function(){
	commentContainer.slideUp('slow', function() {$(this).remove();});
	$('').fadeOut();
  }
   
 });

return false;
	});
});




</script>



<div class="box-body">
              <table id="example1" class="table table-bordered table-striped">
                <thead>
                <tr>
				  <th>ID</th>
                  <th>Gebruikersnaam</th>
                  <th>Promotag</th>
                  <th>Gegeven door</th>
				  <th>Gekregen op</th>
				  <?php
					if($PaneelLevel['toegang_admin'] == 1){
						echo '<th>Verwijder</th>';
					}
				  ?>
                </tr>
                </thead>
                <tbody>
				  <?php $result = mysqli_query($con,"SELECT * FROM paneel_promotags");
$i = 0;
while($row = $result->fetch_assoc())
{
    if ($i == 0) {
      $i++;
      echo "<tr>";
      foreach ($row as $key => $value) {
        echo "";
      }
      echo "</tr>";
    }
    echo "<tr>";
	if($PaneelLevel['toegang_admin'] == 1){
		$row['verwijder'] = '<a id="'. $row['id'] .'" class="delete" href="#"><img src="http://countrywidesucks.co.uk/images/tick-no.png" draggable="false" style="width: 15px; height: 15px;" border="0" /></a>';
	}
    foreach ($row as $value) {
      echo "<td>" . $value . "</td>";
    }
    echo "</tr>";
}
?>                <tfoot>
                <tr>
				  <th>ID</th>
                  <th>Gebruikersnaam</th>
                  <th>Promotag</th>
                  <th>Gegeven door</th>
				  <th>Gekregen op</th>
				  <?php
					if($PaneelLevel['toegang_admin'] == 1){
						echo '<th>Verwijder</th>';
					}
				  ?>
                </tr>
                </tfoot>
              </table>
            </div>
          </div>



Toevoeging op 28/11/2016 21:33:50:

Mr Beronne op 28/11/2016 21:23:51

Ik zal het ongeveer zo doen, heb ik even snel gemaakt

$row['verwijder'] = '<img class="remove" id="567" src="http://countrywidesucks.co.uk/images/tick-no.png" draggable="false" style="width: 15px; height: 15px;" border="0" />';


De img heeft nu een class die gebruikte wordt voor een click functie met jquery. Daarna heeft deze een id (567) gekregen, is id uit database. Nu kan je het volgende doen in jquery


$(document).ready(function()){
   $('.remove').on('click', function()){
      // krijg element waarop je klikt met this
      var remove_id = $(this).attr('id');

      // ajax request
      $.ajax({
         url:"hier_script_die_delete_query doet",  
         type : 'POST',
         // Type data dat je terug verwacht van php script, in dit geval json
         dataType : "json",
         // stuur als post request param, die je kan gebruiken in je php script
         data : param : {id : remove_id },
         // callback function data (data is de response die je van php krijgt)
         success:function(data) {
            // hier heb je meerdere opties::
            // pagina refreshen
            // met jquery de row verwijderen
         }
      });
   });
}


Ik heb de code zo even uit me hoofd getypt kunnen foutjes in zitten, hoop dat je hier wat aan hebt.


Als je op het plaatje drukt gebeurt er dus niks... Enig idee waarom?

jQuery library wel ingeladen?
Hoe ziet je HTML in je browser eruit?
HTML ziet er gewoon uit zoals HTML> <quote>jQuery library wel ingeladen?</quote> Ik denk het niet

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.0/jquery.min.js"></script>
Ik heb voor elkaar gekregen dat hij ze delete, maar hij delete alleen alles en niet dat ene id?

Toevoeging op 28/11/2016 21:51:29:


if($PaneelLevel['toegang_admin'] == 1){
		$row['verwijder'] = '<form action="" method="POST"><button type="submit" name="submit" class="remove" id="'. $row['id'] .'"><img src="http://countrywidesucks.co.uk/images/tick-no.png" draggable="false" style="width: 15px; height: 15px;" border="0"></button></form>';
	}
    foreach ($row as $value) {
      echo "<td>" . $value . "</td>";
    }
    echo "</tr>";
			if(isset($_POST['submit'])){
			$sql = "DELETE FROM paneel_promotags WHERE id='". $row['id'] ."'";
				if (mysqli_query($con,$sql) === true) {
				echo '<meta http-equiv="refresh" content="0">';

			} else {
				
				}
Dat deleten doe je uitsluitend in het scriptje wat je via AJAX inlaadt.

Reageren