2016-05-18 16 views
0

Ich habe eine Datenbank, die Profile hält. Ich bekomme diese Profile durch eine SQL-Anweisung und kodiere sie nach json und drucke sie mit Javascript, damit der Benutzer in diesen Profilen im Frontend filtern kann.Get MySQL ID zu Javascript

Kurz gesagt, müssen Sie den Primärschlüssel (ID) von einer SQL-Anweisung über Json und in ein Skript, so kann ich die ID verwenden, um individuelle Profilseiten, die ihre eigene URL erhalten.

Der letzte Teil meiner MYSQL-Datei wie diese

$sql = $select . $from . $where; 
$statement = $conn->prepare($sql); 
$statement->execute(); 
$results = $statement->fetchAll(PDO::FETCH_ASSOC); 
$json = json_encode($results); 
echo($json); 

Das Skript sieht, die das Ergebnis aus der Abfrage druckt

function makeTable(data){ 
var getUID = "<?php $row['UID'] ?>"; 
var tbl_body = ""; 
$.each(data, function() { 
var tbl_row = ""; 
$.each(this, function(k , v) { 
tbl_row += "<td>"+v+"</td>"; 
}) 
tbl_body += "<tr>"+tbl_row+"</tr>"; 
}) 
return tbl_body; 
} 
function searchOptions(){ 
var opts = []; 
$checkboxes.each(function(){ 
if(this.checked){ 
opts.push(this.name); 
} 
}); 
return opts; 
} 
function updateSearch(opts){ 
$.ajax({ 
type: "POST", 
url: "getProfiles.php", 
dataType : 'json', 
cache: false, 
data: {filterOpts: opts}, 
success: function(records){ 
$('#profiles tbody').html(makeTable(records)); 
} 
}); 
} 
var $checkboxes = $("input:checkbox"); 
$checkboxes.on("change", function(){ 
var opts = searchOptions(); 
updateSearch(opts); 
}); 
updateSearch(); 

ist So sollte jede Zeile haben es eigene <a> Tag ist PHP, die in wäre echo '<a class="viewProfile" href="user.php?id=' . $row['ID']. '">';

Ich verpflegt, um die <a> in jeder Zeile mitzu bekommen, aber ich brauche immer noch die ID

Also, wie bekomme ich die ID von MySQL in das Skript?

+0

In Ihrer while-Schleife, müssen Sie für Sie die Ergebnisse ein assoziatives Array erstellen, so dass Sie leicht die Menge in Javascript dekodieren kann. Beispiel. $ ergebnisse [] = array ('id') => $ row ['id']); echo json_encode ($ ergebnisse). Dann können Sie in Ihrer JQuery die einzelnen Elemente im Array abrufen. Ich nehme an, Sie sind vertraut mit Ajax Antworten mit jquery –

+0

Sie können Ajax Aufruf auf Ihrer PHP-Seite, übergeben als das Element "Daten". Dann wird das Echo-JSON-Objekt als Javascript-Array auf der Seite gespeichert. –

Antwort

0

Weitere zu meinem Kommentar, so etwas wie dieses:

$.ajax({          
    url: 'phppage.php', 
    dataType: 'json', 
    success: function(data) { 
      var json = JSON.parse(data); 
      //do something with json object (extract data etc) 
    } 
}); 
+0

Ich bekomme alle benötigten Daten von der MySQL-Anweisung auf die PHP-Seite, so dass dieser Teil in Ordnung ist. Ich muss nur herausfinden, wie man es organisiert. Das Javascript organisiert es so, wie es in der Datenbank gespeichert ist. Ich muss den Primärschlüssel in den Link um jede Tabellenzeile bringen, damit sie als Link funktionieren – frisk0