delete data of table on image click

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Pagina: « vorige 1 2 3 volgende »

- Rob -

- Rob -

28/11/2016 21:53:57
Quote Anchor link
- Ariën - op 28/11/2016 21:49:58:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.0/jquery.min.js"></script>


Werkt nog steeds niet...
 
PHP hulp

PHP hulp

22/11/2024 05:29:11
 
- Ariën  -
Beheerder

- Ariën -

28/11/2016 22:01:22
Quote Anchor link
Wat zegt de console van je browser (CTRL+SHIFT+J)?
En heb je een voorbeeld die wij hier kunnen bekijken?
 
- Rob -

- Rob -

28/11/2016 22:04:25
Quote Anchor link
Console geeft geen errors. Maar bij mijn code die ik stuurde pakt die alle ids, hoe kan ik zorgen dat die alleen het id pakt van die specefieke rij?
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
        $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>';
        if(isset($_POST['submit'])){
            $sql = "DELETE FROM paneel_promotags WHERE id='". $row['id'] ."'";
                if (mysqli_query($con,$sql) === true) {
                echo 'test';
            } else {
                
                }
Gewijzigd op 28/11/2016 22:05:03 door - Rob -
 
- Ariën  -
Beheerder

- Ariën -

28/11/2016 22:09:02
Quote Anchor link
Waar staat deze code? In je script die je via AJAX oproept? Of ergens anders?
Want volgens mij heb je zelf geen idee wat je nou precies wilt.
 
- Rob -

- Rob -

28/11/2016 22:15:21
Quote Anchor link
Jawel, dat hele script wat bij die link stond, heb ik weg gedaan en dit geprobeerd. Hij verwijderd nu alles. Maar hij pakt alle ids bij
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
$sql = "DELETE FROM paneel_promotags WHERE id='". $row['id'] ."'";
maar hij moet er maar 1 pakken.
 
- Ariën  -
Beheerder

- Ariën -

28/11/2016 22:21:54
Quote Anchor link
Dat ID haal je uit de $_POST op.
Je AJAX-script stuurt via de POST-method het ID van het bericht door naar het script.

Let wel op SQL-injection.
 
- SanThe -

- SanThe -

28/11/2016 22:22:24
Quote Anchor link
Die code staat NIET in het script dat je met Ajax oproept.
Die code staat in de while-loop waar alle records in staan.
En direct voor het record staat telkens de regel if(isset($_POST['submit'])).
Dus als die true geeft worden alle records verwijderd.
Gewijzigd op 28/11/2016 22:24:31 door - SanThe -
 
- Rob -

- Rob -

28/11/2016 22:25:40
Quote Anchor link
- SanThe - op 28/11/2016 22:22:24:
Die code staat NIET in het script dat je met Ajax oproept.
Die code staat in de while-loop waar alle records in staan.
En direct voor het record staat telkens de regel if(isset($_POST['submit'])).
Dus als die true geeft worden alle records verwijderd.


Hoe kan ik dit oplossen?
 
- SanThe -

- SanThe -

28/11/2016 22:27:59
Quote Anchor link
Door dat weg te halen en zoals Ariën aangeeft alleen een delete uitvoeren in het door Ajax aangeroepen script.
 
- Rob -

- Rob -

28/11/2016 22:30:06
Quote Anchor link
Maar met dat jQuery script werkte het niet als ik op het plaatje klik...
 
- Ariën  -
Beheerder

- Ariën -

28/11/2016 22:32:05
Quote Anchor link
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.
Gewijzigd op 28/11/2016 22:32:37 door - Ariën -
 
- Rob -

- Rob -

28/11/2016 22:39:00
Quote Anchor link
Console log:
https://static.afbeeldinguploaden.nl/1611/200043/BLpMxcYb.png

Verwijder knop code:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<?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:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
<?php
$sql
= "DELETE FROM paneel_promotags WHERE id='". $row['id'] ."'";
                if (mysqli_query($con,$sql) === true) {

            }
else {
                
                }

?>
 
- Ariën  -
Beheerder

- Ariën -

28/11/2016 22:41:40
Quote Anchor link
Waar komt $row['id'] vandaan? Je moet $_POST['id'] gebruiken. Verder zou ik dan iets van DONE of NOTOK teruggeven in je AJAX-script.
Gewijzigd op 28/11/2016 22:43:23 door - Ariën -
 
- Rob -

- Rob -

28/11/2016 22:43:13
Quote Anchor link
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.
 
- Ariën  -
Beheerder

- Ariën -

28/11/2016 22:47:38
Quote Anchor link
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.
 
- Rob -

- Rob -

28/11/2016 22:51:45
Quote Anchor link
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...
 
- Ariën  -
Beheerder

- Ariën -

28/11/2016 22:57:23
Quote Anchor link
Hoe ziet je $.ajax() script eruit?
En heb je geen tastbaar voorbeeld anders?
 
- Rob -

- Rob -

29/11/2016 07:35:22
Quote Anchor link
<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?
Gewijzigd op 29/11/2016 07:37:56 door - Rob -
 
- Ariën  -
Beheerder

- Ariën -

29/11/2016 09:50:48
Quote Anchor link
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.
Gewijzigd op 29/11/2016 09:53:24 door - Ariën -
 
- Rob -

- Rob -

29/11/2016 14:46:49
Quote Anchor link
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.
 

Pagina: « vorige 1 2 3 volgende »



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.