page active en deactivate
Ik heb een script, waarbij ik published (sql,field name) moet aanpassen naar 1 of 0.
Dit gebeurt met 2 afbeeldingen, alleeen weet ik niet hoe ik dit het handigst aan moet pakken.
Hetgaat om het volgende:
klikt men op afbeelding 1 dan moet published op 0
klikt men op afbeelding 2 dan moet publishtd op 1
zo?
Gewijzigd op 17/02/2013 12:24:14 door Frank Nietbelangrijk
exact frank. dat bedoel ik.
gebruik je al javascript of jquery?
Wil je dat als men er op klikt dat de pagina ververst wordt? (zoals bij een php formulier)
of wil je dat de pagina niet verlaten wordt?
bij klikken, blijf je op dezelfde pagina, echter wordt er in de database published aangepast
je hebt een pagina geladen in je browser, je wilt dat als er op een knopje gedrukt wordt er iets veranderd in de database op je server.. dan zul je met javascript in combinatie met AJAX aan de gang moeten want anders gaat het niet lukken. Omdat AJAX er dan bij komt kijken raad ik je sterk aan om direct met JQuery te gaan leren werken.
JQuery is gewoon een Javascript bibliotheek met handige makkelijk te gebruiken functies die het leven makkelijk maken.
Toevoeging op 17/02/2013 13:03:26:
Je zou hier kunnen beginnen..
http://www.w3schools.com/jquery/jquery_intro.asp
Vergeet AJAX nog even. probeer eerst maar eens een alert('test'); op het scherm te toveren als je op een plaatje of een tekst klikt of iets dergelijks
het lukt me om als ik op de activate afbeelding klik een melding te laten weergeven dat het geactiveerd is. Aleen hoe kan ik nu een sql query uitvoeren, en de quest_id meegeven aan die afbeelding.
dan moet je met AJAX die php pagina aan gaan roepen.
Toevoeging op 17/02/2013 13:44:11:
kijk eens naar http://www.w3schools.com/jquery/tryit.asp?filename=tryjquery_ajax_load
stel dat je "demo_test.txt" veranderd in "changestatus.php", dan wordt die php pagina geladen/gerunt
als je iets echo't in de php dan zal dat weergegeven worden in die div.
is dat het handigst via $_SESSIONS???
maar laad hij dan die pagina en laad hij depagina dan zien? of niet?
Toevoeging op 17/02/2013 14:07:59:
waarom werkt het volgende niet:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<?php
include ("../connections/config.php");
$result = mysql_query("SELECT * FROM `quest_info`");
while($row = mysql_fetch_row($result)) {
$_SESSION['questID'] = $row['quest_id'];
echo '<div id="div1"></div>';
echo "<tr>";
// $row is array... foreach( .. ) puts every element
// of $row to $cell variable
foreach($row as $cell)
echo "<td>$cell</td>";
echo '<td><img id="activate" value="'.$row['quest_id'].'" src="../images/widm/groene_knop.jpg" width="75"></td>';
echo '<td><img id="" value="'.$row['quest_id'].'" src="../images/widm/rode_knop.jpg" width="75"';
echo "</tr>\n";
}
?>
include ("../connections/config.php");
$result = mysql_query("SELECT * FROM `quest_info`");
while($row = mysql_fetch_row($result)) {
$_SESSION['questID'] = $row['quest_id'];
echo '<div id="div1"></div>';
echo "<tr>";
// $row is array... foreach( .. ) puts every element
// of $row to $cell variable
foreach($row as $cell)
echo "<td>$cell</td>";
echo '<td><img id="activate" value="'.$row['quest_id'].'" src="../images/widm/groene_knop.jpg" width="75"></td>';
echo '<td><img id="" value="'.$row['quest_id'].'" src="../images/widm/rode_knop.jpg" width="75"';
echo "</tr>\n";
}
?>
met javascript:
met de get methode:
in quest_status_change.php:
Toevoeging op 17/02/2013 15:24:52:
of even op weghelpen zodat ik in mijn link de questid kan meesturen
Laat eens zien wat je tot nu toe hebt
Het gaat om /quest/quest_admin.PHP en quest/quest_change_status.PHP
Toevoeging op 17/02/2013 19:07:46:
Het js bestandje zit in de map javascript
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
2
3
4
5
6
7
8
9
10
11
12
$(document).ready(function(){
$("button").click(function(){
$(".test").hide();
});
$(".activate").click(function() {
var questid = 1; // dit is een test variabele. deze moet vervangen worden voor de 'echte' questid
$(".div1").load("quest_status_change.php?quest_id=" + questid);
//alert("You have activated the quest with ID! " + questid);
});
});
$("button").click(function(){
$(".test").hide();
});
$(".activate").click(function() {
var questid = 1; // dit is een test variabele. deze moet vervangen worden voor de 'echte' questid
$(".div1").load("quest_status_change.php?quest_id=" + questid);
//alert("You have activated the quest with ID! " + questid);
});
});
Gewijzigd op 17/02/2013 22:56:41 door Frank Nietbelangrijk
Toevoeging op 18/02/2013 06:36:10:
En de rest van de bestanden zo laten Frank, of moeten die ook gewijzigd worden?...
Toevoeging op 18/02/2013 08:16:23:
ik heb geen idee christiaan, ik kon de php bestanden enkel uitvoeren maar niet inzien dus ik heb er geen goed beeld van
Maar hoe geef ik die quest id mee naar het js bestandje.
...
echo '<td><img id="activate" value="'.$row['quest_id'].'" src="../images/widm/groene_knop.jpg" width="75"></td>';
}
id betekent identificatie.
Als we iedereen "Jan" noemen, kunnen we "Jan" niet meer gebruiken om iemand te identificeren.
id moet uniek zijn en kan dus nooit zomaar in een lus.
---------
Wat jij wil, is class.
echo '<td><img class="activate" ...></td>'
Trouwens... een id spreek je zo aan:
bv.
<div id="message"> => $('#message')
Een class spreek je zo aan:
<div class="message"> => $('.message')
Dus net zoals bij CSS.
---------
Nu wil jij weten: indien ik hier binnen ben
$(".activate").click(function() {
...
}
Hoe weet ik dan überhaupt op welk van de vele <img> elementen de gebruiker heeft geklikt?
Wel, daarvoor hebben we het begrip this.
Test dit eens uit (best ergens appart testen)
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
2
3
4
5
6
7
8
9
10
11
12
13
...
<div class="activate" data-id="1">...<div>
<div class="activate" data-id="2">...<div>
<div class="activate" data-id="3">...<div>
...
<script>
$(document).ready(function() {
$(".activate").click(function() {
var id = $(this).data('id');
alert(id);
}
})
</script>
<div class="activate" data-id="1">...<div>
<div class="activate" data-id="2">...<div>
<div class="activate" data-id="3">...<div>
...
<script>
$(document).ready(function() {
$(".activate").click(function() {
var id = $(this).data('id');
alert(id);
}
})
</script>
Die data- constructie is een manier om extra informatie in een html-element te branden.
Heb je genoeg informatie en inspiratie om je code te herschrijven en (alles deftig testen, ...)?
Gewijzigd op 18/02/2013 12:16:02 door Kris Peeters
Is dat gewoon in html bestand, of moet dat in .js bestand.
En waar haalt hij dandie var id= $ (this).data('id'); vandaan
Christiaan de kleine op 18/02/2013 16:15:48:
Is dat gewoon in html bestand, of moet dat in .js bestand.
Op de zelfde plaats waar jij
$(document).ready(function(){
gezet hebt in je code.
Ik reageer op jouw reactie van "17/02/2013 13:55:05"
( kijk eventueel hier eens, naar mijn reactie: http://www.phphulp.nl/php/forum/topic/image-pas-loaden-als-mousover-is/89293/#641200 zo zie je waar je wat moet plaatsen om het te kunnen testen)
Christiaan de kleine op 18/02/2013 16:15:48:
En waar haalt hij dan die var id=$(this).data('id'); vandaan
Dat is wat de jQuery methode data() doet.
.data('id') zoekt naar het attribuut data-id in de broncode van het element.
(wederom, zie naar die link; ook daar komt dit voor)
ik krijg nu als alert ze alle drie...
En als ik het volgende doe:
Code (php)
1
2
3
2
3
$queryid = "60 christiaan";
echo '<div class="activate" data-id="hallo">...<div><br>';
echo '<div class="activate" data-id="'.$queryid.'">test<div><br>';
echo '<div class="activate" data-id="hallo">...<div><br>';
echo '<div class="activate" data-id="'.$queryid.'">test<div><br>';
dan krijg ik op de quest_status_change pagina alleen die van hallo te zien.
echter krijg ik in de alert box wel die $queryid te zien, alleen leest hij die niet uit op de desbetreffende pagina.
Gewijzigd op 18/02/2013 16:36:32 door christiaan de kleine