2016-12-30 3 views
0

Ich bin neu in AJAX (und Website-Entwicklung im Allgemeinen) und habe Probleme beim Löschen eines Datenbankeintrags in Wordpress mit jQuery und AJAX.
Der Benutzer wählt einen Eintrag in einer Tabelle aus und klickt auf eine Schaltfläche, um ihn zu löschen. Die Tabelle wird mithilfe von Databases-Plugins und umfangreicher Codierung erstellt, damit es so funktioniert, wie ich es brauche.
Der jQuery-Code ist in functions.php und die eigentliche Abfrage befindet sich in einer Datei auf dem Server.
Ich habe diese how to delete records from database with an Ajax als Basis für den Code verwendet. Beachten Sie auch, dass ich Wordpress verwenden Mein Problem ist, dass es scheint, den Eintrag aus der Datenbank zu löschen. HierAJAX zum Löschen des Datenbankeintrags

ist der Code in functions.php:

var GroupID2Del = dt.row({ 
      selected: true 
     }) 
     .data()[23]; 
    if (confirm('Are you sure you want to delete this row?')) { 
     jQuery.ajax({ 
      type: 'POST' 
      , url: '/wp-content/AJAX/ViewTable_DeleteEntry.php' 
      , data: 'groupid=' + GroupID2Del 
      , success: function (data) { 
       dt.row({ 
         selected: true 
        }) 
        .remove(); 
       jQuery('#UserTable') 
        .DataTable() 
        .draw(); 
       alert(data); 
      } 
     }); 
    } 

GroupID2Del ist, wie ich bin immer die ID für sie die ausgewählte Zeile in der Tabelle. Ich entferne dann die Reihe vom Tisch selbst. Die Zeile wird entfernt.

Hier ist die ViewTable_DeleteEntry.php

<?php 
    $dataPosted = $_POST['groupid']; 
    $sql = ('delete from wp_piic_formmaker_submits WHERE form_id = 13 and group_id ='.$dataPosted); 
     mysql_query($sql); 
    $count = mysql_affected_rows(); 
     print $count;?> 

Alarm in function.php die richtige SQL bietet, aber die $count ist leer, da es eigentlich nichts löschen.

+0

KÖNNEN SIE 'Echo von wp_piic_formmaker_submits löschen WHERE form_id = 13 und group_id =‘ $ dataPosted;. ' – Akshay

+1

Debuggen Sie Ihren Code, prüfen Sie, was Sie in '$ _POST' erhalten, wenn Sie Daten richtig empfangen, dann überprüfen Sie die Abfrage wie von @Akshay vorgeschlagen. – tejashsoni111

+0

Ich tat, ich bin mir nicht sicher, was ich sehen soll Aber ich bekomme jetzt ein Fehlerprotokoll, auch nachdem ich die Echo-Anweisung herausgenommen habe PHP Warnung: mysql_query(): Zugriff verweigert für Benutzer 'ubm' @ ' localhost '(mit Passwort: NO) in /home1/rojectx3/public_html/wp-content/AJAX/ViewTable_DeleteEntry.php on line 8 PHP Warnung: mysql_query(): In/home1/rojectx3 konnte keine Verbindung zum Server hergestellt werden /public_html/wp-content/AJAX/ViewTable_DeleteEntry.php on line 8 Ich glaube, ich bin nicht eingeloggt! Wäre es nicht unsicher, Benutzername und Passwort in dieser Datei zu verwenden? Wie mache ich das? – G1408

Antwort

0

Bitte versuchen Sie dies:

var myKeyVals = { groupid : GroupID2Del} 
    jQuery.ajax(
     { 
     type: 'POST', 
     url: '/wp-content/AJAX/ViewTable_DeleteEntry.php', 
     data: myKeyVals, 
     success: function(data) 
     { 
      dt.row({selected: true }).remove();            
      jQuery('#UserTable').DataTable().draw(); 
      alert(data); 
     } 
    }); 

UND

$dataPosted = $_POST['groupid']; 
if($dataPosted != ''){ 
$sql = ('delete from wp_piic_formmaker_submits WHERE form_id = 13 and group_id ='.$dataPosted); 
    mysql_query($sql); 

$count = mysql_affected_rows(); 
} else { 
echo 'Blank Record'; 
} 
+0

Das hat nicht funktioniert Uncaught ReferenceError: myKeyVals ist nicht definiert – G1408

0

So war das Problem, dass ich nicht mit der Datenbank verbunden bin, so habe ich hinzugefügt, um die folgenden Zeilen am Anfang der PHP-Datei

<?php 
$servername = "localhost"; 
$username = "username"; 
$password = "password"; 
$dbname = "dbname"; 


mysql_connect($servername, $username, $password, $dbname) or die("Connection failed"); 
mysql_select_db($dbname) or die("No Database found."); 
Verwandte Themen