ID gebruiken na een innerHTML
HTML stukje
Js stukje
Op die manier krijg ik in div vieuwusers het id te zien van de gebruiker. alleen hoe kan ik dat id gebruiken voor in een bijvoorbeeld query om op te halen. of hoe kan ik de eerder opgevraagde gegevens, ipv van een nieuwe guery draaien, naar die div toe stuen.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
echo '
<div class="usersleft">
<select name="drop1" id="Select1" size="10" multiple="multiple">
';
while($row= mysql_fetch_assoc($sql)){
echo '
<option onClick="DisplayUser('.$row['ID'].');">'.$row['Username'].'</option>
';
}
echo '
</select>
</div>
<div class="usersright" id="viewusers">
users informattion
';
echo '
</div>
';
<div class="usersleft">
<select name="drop1" id="Select1" size="10" multiple="multiple">
';
while($row= mysql_fetch_assoc($sql)){
echo '
<option onClick="DisplayUser('.$row['ID'].');">'.$row['Username'].'</option>
';
}
echo '
</select>
</div>
<div class="usersright" id="viewusers">
users informattion
';
echo '
</div>
';
Js stukje
Op die manier krijg ik in div vieuwusers het id te zien van de gebruiker. alleen hoe kan ik dat id gebruiken voor in een bijvoorbeeld query om op te halen. of hoe kan ik de eerder opgevraagde gegevens, ipv van een nieuwe guery draaien, naar die div toe stuen.
Ajax?
Ik zou het dan eerder in een jQuery (makkelijkere ajax call) doen. Dan zou het iets zijn als:
users.php
Ik zou het dan eerder in een jQuery (makkelijkere ajax call) doen. Dan zou het iets zijn als:
Code (php)
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
$('#Select1').change(function(){
var id = $(this).val();
$('.usersright').empty();
$.get("users.php", { user_id: id },
function(data){
$('.usersright').append(data);
});
});
var id = $(this).val();
$('.usersright').empty();
$.get("users.php", { user_id: id },
function(data){
$('.usersright').append(data);
});
});
users.php
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
<?php
if ($_SERVER['REQUEST_METHOD'] == 'GET'){
if ($_GET['user_id'] != ''){
$query = mysql_query("SELECT * FROM users WHERE user_id = '".mysql_real_escape_string($_GET['user_id'])."'");
if ($row = mysql_fetch_assoc($query)){
// hier je info van de database outputten
}
}
}
?>
if ($_SERVER['REQUEST_METHOD'] == 'GET'){
if ($_GET['user_id'] != ''){
$query = mysql_query("SELECT * FROM users WHERE user_id = '".mysql_real_escape_string($_GET['user_id'])."'");
if ($row = mysql_fetch_assoc($query)){
// hier je info van de database outputten
}
}
}
?>
Gewijzigd op 15/02/2013 10:08:04 door Albert de Wit
Uhmm..
Het is een detail, maar volgens mij is deze regel een nutteloze.
Als je een request stuurt naar de server heb je altijd een GET, dus die is overbodig.
Als iemand dat afzonderlijke bestand opent en geen $_GET waarde aan de url meegeeft en daardoor een error ziet... ik dacht dat het meer was om het een beetje waterdicht te houden, niet dat iemand er wat aan heeft maar toch. Kun je eventueel inderdaad weglaten wat Bart V B zegt.
Werkt dat überhaupt wel? De option-elementen hebben niet eens een value.
Mocht je het op een eenvoudige Javascript-manier willen doen (zonder jQuery o.i.d.), dan denk ik dat dit moet werken:
Mocht je het op een eenvoudige Javascript-manier willen doen (zonder jQuery o.i.d.), dan denk ik dat dit moet werken:
Code (php)
1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
<?php
echo '<select name="drop1" id="Select1" size="10" multiple="multiple" onChange="javascript: DisplayUser();">';
while ($row = mysql_fetch_assoc($sql))
{
echo '<option value="'. $row['id'] .'">'. $row['Username'] .'</option>';
}
echo '</select>';
?>
echo '<select name="drop1" id="Select1" size="10" multiple="multiple" onChange="javascript: DisplayUser();">';
while ($row = mysql_fetch_assoc($sql))
{
echo '<option value="'. $row['id'] .'">'. $row['Username'] .'</option>';
}
echo '</select>';
?>
Misschien nog netter om een post request te doen?
Voor de ajax call maakt het niet zoveel uit.
Het enige wat moet veranderen is:
naar:
En in het php script:
Voor de ajax call maakt het niet zoveel uit.
Het enige wat moet veranderen is:
naar:
En in het php script:
@Kevin de Groot
Alleen nu nog de Ajax call naar het PHP bestand waar de query word uitgevoerd om de gegevens terug naar de pagina te sturen.
Alleen nu nog de Ajax call naar het PHP bestand waar de query word uitgevoerd om de gegevens terug naar de pagina te sturen.
Gewijzigd op 15/02/2013 10:39:50 door Albert de Wit
Dan moet de TS wel ervaring/verstand hebben met/van jQuery. Uit de geplaatste code kon ik opmaken dat dit wellicht niet het geval was. Maar uiteraard verkies ik ook jQuery boven de methode die ik eerder heb geplaatst.
Echter, ik zou voor $.get gaan als je enkel en alleen gegevens wilt ophalen en als er niets met de data gedaan wordt. Technisch gezien is $.get sneller omdat je dan minder data verstuurt. Bij $.get gaat het om één pakketje en bij $.post gaat het om minstens twee pakketjes (headers en de content). Dit verschil is nihil, maar toch.
Ga je gegevens verwerken, dan is $.post wellicht een betere optie.
Edit:
@Albert:
Ik heb even niet gekeken naar de verdere wensen, ik heb puur de code van de TS bekeken en hier een alternatief voor bedacht (mijn fout). Maar de Javascript-functie kun je simpel aanpassen. Hierin kun je de $.get request uitvoeren naar het betreffende PHP-bestand.
Echter, ik zou voor $.get gaan als je enkel en alleen gegevens wilt ophalen en als er niets met de data gedaan wordt. Technisch gezien is $.get sneller omdat je dan minder data verstuurt. Bij $.get gaat het om één pakketje en bij $.post gaat het om minstens twee pakketjes (headers en de content). Dit verschil is nihil, maar toch.
Ga je gegevens verwerken, dan is $.post wellicht een betere optie.
Edit:
@Albert:
Ik heb even niet gekeken naar de verdere wensen, ik heb puur de code van de TS bekeken en hier een alternatief voor bedacht (mijn fout). Maar de Javascript-functie kun je simpel aanpassen. Hierin kun je de $.get request uitvoeren naar het betreffende PHP-bestand.
Gewijzigd op 15/02/2013 10:48:08 door Kevin de Groot
Bedankt allen voor de reacties, Wat ik wou was een <select> lijst van de accounts. Op klikt en dan in een div ernaast de gegevens ziet met de opties om het te kunnen wijzigen of account te verwijderen.
Maar ik zal is met de boven genoemde opties gaan prutsen, ben echt net beginnend met Javscript en heb nog geen ervaring met jQuery. Maar het is nooit te laat om er mee te beginnen :p.
Maar ik zal is met de boven genoemde opties gaan prutsen, ben echt net beginnend met Javscript en heb nog geen ervaring met jQuery. Maar het is nooit te laat om er mee te beginnen :p.
Perfect, een groot voordeel van jQuery is dat vele opties grotendeels cross-browser zijn.
Een goed voorbeeld is een zogenaamde XMLHTTPRequest, per browser moet dit anders gedaan worden.
Mocht je er niet uit komen dan kan ik wel een complete(re) code plaatsen waarvan ik vermoed dat dit wel werkt. Succes!
Een goed voorbeeld is een zogenaamde XMLHTTPRequest, per browser moet dit anders gedaan worden.
Mocht je er niet uit komen dan kan ik wel een complete(re) code plaatsen waarvan ik vermoed dat dit wel werkt. Succes!
Ik kan geen Javascript maar wel jQuery, ik zou als ik jou was ook eerst jQuery leren. Heel makkelijk om te leren.
Het lukt mij toch niet echt om dat jQeury stukje werken te krijgen. Wat misschien wel handig is om te weten is dat het in een function in functions.php gebeurd. die aangeroepen wordt met deze link: http://localhost/Admin?p=view_users#1. en ja ik draai hem op localhost, met xampp. betekent dit dat ik nog iets moet downloaden om jQeury draaiende te krijgen?
code die ik nu heb:
js.js
functions.php
index.php
code die ik nu heb:
js.js
Code (php)
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
$('#Select1').change(function(){
var id = $(this).val();
$('.usersright').empty();
$.get("functions.php", { user_id: id },
function(data){
$('.usersright').append(data);
});
});
var id = $(this).val();
$('.usersright').empty();
$.get("functions.php", { user_id: id },
function(data){
$('.usersright').append(data);
});
});
functions.php
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
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
function view_users(){
if($sql = mysql_query("SELECT * FROM users")){
echo '
<div class="usersleft">
<select name="drop1" id="Select1" size="10" multiple="multiple">
';
while ($row = mysql_fetch_assoc($sql))
{
echo '<option value="'. $row['ID'] .'">'. $row['Username'] .'</option>';
}
echo '
</select>
</div>
<div class="usersright" id="viewusers">
';
if ($_SERVER['REQUEST_METHOD'] == 'GET'){
if ($_GET['user_id'] != ''){
echo $_GET['user_id'];
}
}
echo '
</div>
';
}
}
if($sql = mysql_query("SELECT * FROM users")){
echo '
<div class="usersleft">
<select name="drop1" id="Select1" size="10" multiple="multiple">
';
while ($row = mysql_fetch_assoc($sql))
{
echo '<option value="'. $row['ID'] .'">'. $row['Username'] .'</option>';
}
echo '
</select>
</div>
<div class="usersright" id="viewusers">
';
if ($_SERVER['REQUEST_METHOD'] == 'GET'){
if ($_GET['user_id'] != ''){
echo $_GET['user_id'];
}
}
echo '
</div>
';
}
}
index.php
Gewijzigd op 15/02/2013 12:25:37 door Teun Hesseling
het is handig om dit net voor je </body> tag te zetten
Code (php)
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
<script type="text/javascript">
$('#Select1').change(function(){
var id = $(this).val();
$('.usersright').empty();
$.get("functions.php", { user_id: id },
function(data){
$('.usersright').append(data);
});
});
</script>
<script type="text/javascript" src="http://code.jquery.com/jquery-latest.pack.js"></script>
$('#Select1').change(function(){
var id = $(this).val();
$('.usersright').empty();
$.get("functions.php", { user_id: id },
function(data){
$('.usersright').append(data);
});
});
</script>
<script type="text/javascript" src="http://code.jquery.com/jquery-latest.pack.js"></script>
Gewijzigd op 15/02/2013 12:29:41 door Albert de Wit
ik had idd die jQeury link nog niet in mijn <head> </head>. Heb het in de <head></head> gezet. Maar werken heeft hij geen zin in. ik vraag me af of dit ligt aan : $.get("functions.php", { user_id: id }, en dan die functions.php . moet die misshien anders?
Ik zei in mijn vorige post dat je hem boven het eindetag van je body moest zetten. Dan word hij automatisch ingeladen. Het kan wel op jouw manier maar dan moet het anders namelijk:
Het werkt soort van, hij laadt de hele pagina opnieuw in die ene div, maar het id komt er wel bij te staan
Toevoeging op 15/02/2013 14:58:56:
ik zal je een print scr geven, zodat je het ziet.
Toevoeging op 15/02/2013 15:04:07:

Toevoeging op 15/02/2013 14:58:56:
ik zal je een print scr geven, zodat je het ziet.
Toevoeging op 15/02/2013 15:04:07:

Dat is omdat je de Ajax call naar hetzelfde bestand maakt. Dat moet natuurlijk niet. Er vanuitgaand dat je niet weet hoe Ajax werkt, hier een schematisch getekende werking:

Toevoeging op 15/02/2013 15:26:54:
Ajax laad een bestand in zonder dat de hele webpagina herlaad. Wat je dus moet doen is een bestand maken (user.php ofzo) die de gegevens laad zien van een bepaalde user aan de hand van een id. Die id geef je mee in een $_GET variabele naar dat bestand die vervolgens kijkt wat hij moet doen en de output terug stuurt.
Ik heb al eerder aangegeven hoe zo'n bestand eruit ziet (jij moet hem alleen nog aanpassen naar je database ontwerp.)

Toevoeging op 15/02/2013 15:26:54:
Ajax laad een bestand in zonder dat de hele webpagina herlaad. Wat je dus moet doen is een bestand maken (user.php ofzo) die de gegevens laad zien van een bepaalde user aan de hand van een id. Die id geef je mee in een $_GET variabele naar dat bestand die vervolgens kijkt wat hij moet doen en de output terug stuurt.
Ik heb al eerder aangegeven hoe zo'n bestand eruit ziet (jij moet hem alleen nog aanpassen naar je database ontwerp.)
Quote:
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
<?php
if ($_SERVER['REQUEST_METHOD'] == 'GET'){
if ($_GET['user_id'] != ''){
$query = mysql_query("SELECT * FROM users WHERE user_id = '".mysql_real_escape_string($_GET['user_id'])."'");
if ($row = mysql_fetch_assoc($query)){
// hier je info van de database outputten
}
}
}
?>
if ($_SERVER['REQUEST_METHOD'] == 'GET'){
if ($_GET['user_id'] != ''){
$query = mysql_query("SELECT * FROM users WHERE user_id = '".mysql_real_escape_string($_GET['user_id'])."'");
if ($row = mysql_fetch_assoc($query)){
// hier je info van de database outputten
}
}
}
?>
Ah , dat was het inderdaad. Bedankt voor je geduld en hulp.
Een beginnende 'noob' met jQeury zoals ik, kan nog wel is lastig zijn :p.
Een beginnende 'noob' met jQeury zoals ik, kan nog wel is lastig zijn :p.
Als ik jou was zou ik niet met hoofdletters gebruiken. Die moet je niet in classes/id's/url's gebruiken want dat kan verwarring opleveren.
Zoek anders eens op Google naar (de mogelijkheden van) de zogenaamde "Ajax Agent". Als je dit downloadt zitten er voorbeelden in de ZIP.
Dit is een leuke framework om dit soort werk mee klaar te spelen. Ik gebruikte dit zelf ook enorm veel, maar ben ervan af gestapt omdat je uiteindelijk toch alles zelf wilt maken.
Voorbeeld gebruik:
Eerste parameter is de locatie van de PHP-functie (bijv. test.php, indien je deze leeg laat mag de functie zich in hetzelfde bestand bevinden).
De tweede parameter is de naam van de PHP-functie (bijv. getGebruikersnaam).
De derde parameter kun je gebruiken als je de output van de PHP-functie (dus wat die returnt) in een Javascript-functie wilt plaatsen. Ik gebruikte het zelf bijna niet, maar hier kun je dan de naam van de Javascript-functie plaatsen.
De vierde parameter is je eerste parameter voor jouw PHP-functie. In dit voorbeeld is dit het gebruikersid (1337).
Dit is slechts een beknopte uitleg, voorbeelden en code staan op het internet en in het ZIP-bestandje. Het is - mijn inziens - wel de moeite waard om even te bekijken als je begint met AJAX.
Dit is een leuke framework om dit soort werk mee klaar te spelen. Ik gebruikte dit zelf ook enorm veel, maar ben ervan af gestapt omdat je uiteindelijk toch alles zelf wilt maken.
Voorbeeld gebruik:
Code (php)
1
2
3
2
3
var gebruikersnaam = agent.call('', 'getGebruikersnaam', '', 1337);
document.write(gebruikersnaam);
document.write(gebruikersnaam);
Eerste parameter is de locatie van de PHP-functie (bijv. test.php, indien je deze leeg laat mag de functie zich in hetzelfde bestand bevinden).
De tweede parameter is de naam van de PHP-functie (bijv. getGebruikersnaam).
De derde parameter kun je gebruiken als je de output van de PHP-functie (dus wat die returnt) in een Javascript-functie wilt plaatsen. Ik gebruikte het zelf bijna niet, maar hier kun je dan de naam van de Javascript-functie plaatsen.
De vierde parameter is je eerste parameter voor jouw PHP-functie. In dit voorbeeld is dit het gebruikersid (1337).
Dit is slechts een beknopte uitleg, voorbeelden en code staan op het internet en in het ZIP-bestandje. Het is - mijn inziens - wel de moeite waard om even te bekijken als je begint met AJAX.




