page active en deactivate

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Pagina: 1 2 volgende »

Christiaan de kleine

christiaan de kleine

17/02/2013 12:12:56
Quote Anchor link
hallo,

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:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
Season ID | Episode ID | Quest ID | Quest title | Published |

$season_id | $episode_id | $quest_id| $quest_title | $published | afbeelding activeer | afbeelding deactiveer

en dat moet voor alle opdrachten die in de database getoond worden.
 
PHP hulp

PHP hulp

26/04/2024 17:37:42
 
Frank Nietbelangrijk

Frank Nietbelangrijk

17/02/2013 12:23:17
Quote Anchor link
je bedoeld met twee afbeeldingen waar men dan op moet klikken?
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
 
Christiaan de kleine

christiaan de kleine

17/02/2013 12:29:03
Quote Anchor link
exact frank. dat bedoel ik.
 
Frank Nietbelangrijk

Frank Nietbelangrijk

17/02/2013 12:39:58
Quote Anchor link
er zijn verschillende mogelijkheden..

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?
 
Christiaan de kleine

christiaan de kleine

17/02/2013 12:44:22
Quote Anchor link
pagina niet verlaten. en gebruik nog geen javascript of jquery.
bij klikken, blijf je op dezelfde pagina, echter wordt er in de database published aangepast
 
Frank Nietbelangrijk

Frank Nietbelangrijk

17/02/2013 12:57:29
Quote Anchor link
okee.

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
 
Christiaan de kleine

christiaan de kleine

17/02/2013 13:31:31
Quote Anchor link
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.
 
Frank Nietbelangrijk

Frank Nietbelangrijk

17/02/2013 13:40:05
Quote Anchor link
de sql query uitvoeren doe je vanuit een nieuwe php pagina, bijvoorbeeld changestatus.php

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.
 
Christiaan de kleine

christiaan de kleine

17/02/2013 13:55:05
Quote Anchor link
die externe pagina loaden snap ik, maar hoe kan ik de quest_id meegeven uit quest_admin naar changestatus.php

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)
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
<?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";
 }


?>


met javascript:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
$(document).ready(function(){
  $("button").click(function(){
    $(".test").hide();
  });
  
  $(".activate").click(function() {
      alert("You have activated the quest!");
      $("#div1").load("quest_status_change.php");
  });
  
});
 
Frank Nietbelangrijk

Frank Nietbelangrijk

17/02/2013 14:31:18
Quote Anchor link
dat kan met sessions maar ook met de get of de post methode. AJAX ondersteunt ook de post methode.

met de get methode:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
$("#div1").load("quest_status_change.php?quest_id=" + questid);


in quest_status_change.php:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
<?php
$quest_id
= 0;
if(isset($_GET['quest_id'])) {
$quest_id = $_GET['quest_id'];
}

echo $quest_id;
?>
 
Christiaan de kleine

christiaan de kleine

17/02/2013 14:37:46
Quote Anchor link
krijg hem niet voor elkaar. zou je miss mijn php pagina kunnen posten hier. de value blijft leeg namelijk...


Toevoeging op 17/02/2013 15:24:52:

of even op weghelpen zodat ik in mijn link de questid kan meesturen
 
Frank Nietbelangrijk

Frank Nietbelangrijk

17/02/2013 18:10:48
Quote Anchor link
Laat eens zien wat je tot nu toe hebt
 
Christiaan de kleine

christiaan de kleine

17/02/2013 19:00:29
Quote Anchor link
Kan nu niet meer bij laptop. Maar je zou bestanden even kunnen downloaden van widm-dehavik.net78.net
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
 
Frank Nietbelangrijk

Frank Nietbelangrijk

17/02/2013 22:35:21
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
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);
  });
  
});
Gewijzigd op 17/02/2013 22:56:41 door Frank Nietbelangrijk
 
Christiaan de kleine

christiaan de kleine

18/02/2013 06:35:58
Quote Anchor link
En de rest van de bestanden zo laten Frank, of moeten die ook gewijzigd worden?...

Toevoeging op 18/02/2013 06:36:10:

En de rest van de bestanden zo laten Frank, of moeten die ook gewijzigd worden?...
 
Frank Nietbelangrijk

Frank Nietbelangrijk

18/02/2013 08:16:17
Quote Anchor link
ik heb geen idee christiaan, ik kon de php bestanden enkel uitvoeren maar niet inzien dus ik heb er geen goed beeld van

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
 
Christiaan de kleine

christiaan de kleine

18/02/2013 11:07:50
Quote Anchor link
Maar hoe geef ik die quest id mee naar het js bestandje.
 
Kris Peeters

Kris Peeters

18/02/2013 11:50:02
Quote Anchor link
foreach($row as $cell) {
...
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)
PHP script in nieuw venster Selecteer het PHP script
1
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>


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
 
Christiaan de kleine

christiaan de kleine

18/02/2013 16:15:48
Quote Anchor link
euhm ik snap die laatste code part niet.

Is dat gewoon in html bestand, of moet dat in .js bestand.
En waar haalt hij dandie var id= $ (this).data('id'); vandaan
 
Kris Peeters

Kris Peeters

18/02/2013 16:28:06
Quote Anchor link
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)
 
Christiaan de kleine

christiaan de kleine

18/02/2013 16:34:38
Quote Anchor link
ik probeer de code momenteel uit, echter:

ik krijg nu als alert ze alle drie...
En als ik het volgende doe:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
$queryid = "60 christiaan";
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
 

Pagina: 1 2 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.