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
Dan moet dat worden opgelost. Dus wat zegt de console precies? Heb je al gekeken in de WebDeveloper tools, zoals Firebug? Dan kan je precies zien wat de AJAX-request doet.
Misschien werkt het wel, maar haalt hij je item nog niet weg? Of is de query gewoon stuk die op de achtergrond een foutmelding geeft?

Dus, wees eens wat specifieker dan alleen maar: 'het werkt niet'.
Kom anders met een voorbeeld aan die we kunnen uittesten.
Console log:


Verwijder knop code:

<?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'] = '<form action="" method="post"><button type="submit" name="verwijder" 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>";
}
?>


Het script wat AJAX moet inladen:

<?php
$sql = "DELETE FROM paneel_promotags WHERE id='". $row['id'] ."'";
				if (mysqli_query($con,$sql) === true) {

			} else {
				
				}
?>

Waar komt $row['id'] vandaan? Je moet $_POST['id'] gebruiken. Verder zou ik dan iets van DONE of NOTOK teruggeven in je AJAX-script.
Done

Toevoeging op 28/11/2016 22:45:07:

Rob Chesture op 28/11/2016 22:43:13

Done, maar $_POST['id'] herkent hij niet omdat er ook niks gepost wordt voor een id. Ik heb $row['id'] uit de database gehaald, $row['id'] is steeds het id dat overeenkomt met de database.


Ik neem aan dat je het script ook niet in je browser uittest, dan is er ook geen POST-waarde bekend.

De $.ajax() functie van het jQuery-script zou toch echt het ID via POST moeten meesturen.
Als ik ipv. het script wat AJAX inload echo 'test'; zet gebeurt er niks.

Toevoeging op 28/11/2016 22:52:00:

Het lijkt wel of die het helemaal niet inlaad...
Hoe ziet je $.ajax() script eruit?
En heb je geen tastbaar voorbeeld anders?
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.0/jquery.min.js"></script>
<script type="text/javascript">
$(document).ready(function()){
$('.remove').on('click', function()){
// krijg element waarop je klikt met this
var remove_id = $(this).attr('id');

// ajax request
$.ajax({
url:"verwijderen.php",
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
}
});
});
}
</script>

Toevoeging op 29/11/2016 07:38:31:

- Ariën - op 28/11/2016 22:57:23

Hoe ziet je $.ajax() script eruit?
En heb je geen tastbaar voorbeeld anders?


Wat bedoel je met een tastbaar voorbeeld?
Waar wij een kijkje in kunnen nemen met onze browser.

Verder doe je niks als de AJAX-request lukt. Je zou dan met jQuery je row moeten weghalen uit je HTML. Zie mijn gegeven link eerder in dit topic.
Wat er op die website staat is bijna het zelfde als dit, alleen dit is met wat kleine aanpassingen zoals: Geen loading teken

Toevoeging op 29/11/2016 14:59:05:

Maar ik heb het al werkend gekregen, als je op die image drukt, wordt je gewoon doorgewezen naar verwijderen.php waarin die die row verwijderd en dat je direct terug wordt verwezen.

Reageren