Ajax beginner vraag
Ik heb dus een tabel met allemaal gegevens, aan het einde van elke rij voeg ik een delete knop toe, hiermee zou ik de hele rij willen kunnen wissen.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
<script src="ajax_framework.js" language="javascript"></script>
//MYSQL Statement
$select = "SELECT * FROM `vliegers`";
//Plaats query in pointer
$query = mysql_query($select);
//While-lus met query die alles in html-tabel zet
echo "<table cellpadding=\"0\" cellspacing=\"0\" border=\"0\" id=\"table\" class=\"tinytable\">";
echo"<thead>
<tr>
<th class=\"nosort\"><h3>ID</h3></th>
<th><h3>Naam</h3></th>
<th><h3>Type</h3></th>
<th><h3>Fabrikant</h3></th>
<th><h3>Schaal</h3></th>
<th><h3>Kitnr</h3></th>
<th><h3>Magazine</h3></th>
<th><h3> Verwijder</h3><th>
</tr>
</thead>";
echo "<tbody>";
while ($qry = mysql_fetch_array($query)) {
echo "<tr><td>";
echo $qry['id'];
echo "</td><td>";
echo $qry['naam'];
echo "</td><td>";
echo $qry['type'];
echo "</td><td>";
echo $qry['fabrikant'];
echo "</td><td>";
echo $qry['schaal'];
echo "</td><td>";
echo $qry['kitnr'];
echo "</td><td>";
echo $qry['magazine'];
echo "</td><td>";?>
//MYSQL Statement
$select = "SELECT * FROM `vliegers`";
//Plaats query in pointer
$query = mysql_query($select);
//While-lus met query die alles in html-tabel zet
echo "<table cellpadding=\"0\" cellspacing=\"0\" border=\"0\" id=\"table\" class=\"tinytable\">";
echo"<thead>
<tr>
<th class=\"nosort\"><h3>ID</h3></th>
<th><h3>Naam</h3></th>
<th><h3>Type</h3></th>
<th><h3>Fabrikant</h3></th>
<th><h3>Schaal</h3></th>
<th><h3>Kitnr</h3></th>
<th><h3>Magazine</h3></th>
<th><h3> Verwijder</h3><th>
</tr>
</thead>";
echo "<tbody>";
while ($qry = mysql_fetch_array($query)) {
echo "<tr><td>";
echo $qry['id'];
echo "</td><td>";
echo $qry['naam'];
echo "</td><td>";
echo $qry['type'];
echo "</td><td>";
echo $qry['fabrikant'];
echo "</td><td>";
echo $qry['schaal'];
echo "</td><td>";
echo $qry['kitnr'];
echo "</td><td>";
echo $qry['magazine'];
echo "</td><td>";?>
<button type='submit' onclick="javascript:delete();" title='Verwijderen' style='width: 38px;'>
<img src='delete.png' align='absmiddle'></button>
In de ajax framework heb ik de volgende code
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
var http3 = createObject();
function delete($id) {
// Optional: Show a waiting message in the layer with ID login_response
document.getElementById('insert_response').innerHTML = "Just a second..."
// Required: verify that all fileds is not empty. Use encodeURI() to solve some issues about character encoding.
var id = encodeURI(document.getElementById('id').value);
// Set te random number to add to URL request
nocache3 = Math.random();
// Pass the login variables like URL variable
http3.open('get', 'deleteEntry.php?id=' +id+ '&nocache = '+nocache3);
http3.onreadystatechange = deleteReply;
http3.send(null);
}
function deleteReply() {
if(http3.readyState == 4){
var response2 = http3.responseText;
// else if login is ok show a message: "Site added+ site URL".
document.getElementById('insert_response').innerHTML = 'Site added:'+response2;
window.location.reload();
}
}
function delete($id) {
// Optional: Show a waiting message in the layer with ID login_response
document.getElementById('insert_response').innerHTML = "Just a second..."
// Required: verify that all fileds is not empty. Use encodeURI() to solve some issues about character encoding.
var id = encodeURI(document.getElementById('id').value);
// Set te random number to add to URL request
nocache3 = Math.random();
// Pass the login variables like URL variable
http3.open('get', 'deleteEntry.php?id=' +id+ '&nocache = '+nocache3);
http3.onreadystatechange = deleteReply;
http3.send(null);
}
function deleteReply() {
if(http3.readyState == 4){
var response2 = http3.responseText;
// else if login is ok show a message: "Site added+ site URL".
document.getElementById('insert_response').innerHTML = 'Site added:'+response2;
window.location.reload();
}
}
In in de deleteEntry.php heb ik de volgende code
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<!-- Include Database connections info. -->
<?php include('config.php');
//<!-- Verify if user exists for login -->
if(isset($_GET['id'])){
$sql="DELETE * FROM vliegers WHERE id= ".mysql_real_escape_string($_GET['id']);
$insertSite= mysql_query($sql) or die(mysql_error());
//<!-- If is set URL variables and insert is ok, show the site name -->
}
else {
echo 'Error! Please fill all fileds!';
}
?>
<?php include('config.php');
//<!-- Verify if user exists for login -->
if(isset($_GET['id'])){
$sql="DELETE * FROM vliegers WHERE id= ".mysql_real_escape_string($_GET['id']);
$insertSite= mysql_query($sql) or die(mysql_error());
//<!-- If is set URL variables and insert is ok, show the site name -->
}
else {
echo 'Error! Please fill all fileds!';
}
?>
Hopelijk kunnen jullie mij op de goede weg zetten! Alvast bedankt!
Gewijzigd op 04/07/2012 07:58:17 door Vincent verstreken
Niet werkend is altijd zo lekker vaag. Wat werkt er niet? Wat verwacht je dat er gebeurd en wat gebeurd er? Als je de Console opent (Ctrl + Shift + J, of F12 in IE) krijg je dan errors te zien? Als je je code door jsHint haalt en de nuttige puntjes verbeterd, werkt het dan wel?
Kun je misschien een voorbeeldje maken op JSfiddle of JSbin?
Dingen die me nu al opvallen:
- language attribuut bestaat niet, gebruik of geen attribuut of type="text/javascript"
- gebruik in PHP enkele quotes, zo hoef je niet te escapen
- ik mis elke vorm van foutafhandeling: http://github.com/WouterJ/sql-boilerplate/tree/mysql
- gebruik fetch_assoc i.p.v. fetch_array
Alvast bedankt voor je antwoord! Ik zou willen dat wanneer ik op de delete knop druk, de rij uit de tabel gewist wordt, zonder dat de pagina moeten worden gerefreshed. Ik ga je opmerkingen eens doornemen!
Gewijzigd op 04/07/2012 08:05:29 door Vincent verstreken
DELETE * FROM vliegers
Gebruik de handleiding om een correct statement te maken en TEST het in phpmyadmin of de command line SQL tool.
http://dev.mysql.com/doc/refman/5.0/en/delete.html