Resultaat AJAX request weergeven in tekstveld
Code (php)
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
<form name="form1">
<select name="users" onchange="showUser(this.value)">
<option value="">Selecteer</option>
<option value="100">Peter</option>
<option value="101">Klaas</option>
<option value="102">Jan</option>
<option value="103">Piet</option>
</select>
</form>
<select name="users" onchange="showUser(this.value)">
<option value="">Selecteer</option>
<option value="100">Peter</option>
<option value="101">Klaas</option>
<option value="102">Jan</option>
<option value="103">Piet</option>
</select>
</form>
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 showUser(str)
{
if (str=="")
{
document.getElementById("input1").innerHTML="";
return;
}
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
document.getElementById("input1").innerHTML=xmlhttp.responseText;
}
}
xmlhttp.open("GET","get_users.php?q="+str,true);
xmlhttp.send();
}
{
if (str=="")
{
document.getElementById("input1").innerHTML="";
return;
}
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
document.getElementById("input1").innerHTML=xmlhttp.responseText;
}
}
xmlhttp.open("GET","get_users.php?q="+str,true);
xmlhttp.send();
}
<<get_users.php>>
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("Includes/functions.php");
include("Includes/connection.php");
$q=$_GET["q"];
$query= mysql_query("
SELECT
*
FROM
test_tabel
WHERE
id = '".$q."'"
,$connection);
$row = mysql_fetch_assoc($query);
echo $row['achternaam'];
mysql_close($connection);
?>
include("Includes/functions.php");
include("Includes/connection.php");
$q=$_GET["q"];
$query= mysql_query("
SELECT
*
FROM
test_tabel
WHERE
id = '".$q."'"
,$connection);
$row = mysql_fetch_assoc($query);
echo $row['achternaam'];
mysql_close($connection);
?>
Gewijzigd op 06/01/2013 15:24:14 door Peter van den Dungen
document.getElementById('input1').value = xmlhttp.responseText
Stel, ik wil niet alleen de achternaam ophalen, maar ook leeftijd, geslacht etc.
Zoewel achternaam, leeftijd en geslacht moeten in een apart tekstveld worden weergegeven. Is dit alleen te doen door 3 verschillende functies aan te roepen, of kan dit in 1 functie?
In php:
Binnen onreadystatechange
De functie is als volgt:
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
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
function getR(str)
{
if (str=="")
{
document.getElementById('input1').value = xmlhttp.responseText
return;
}
if (window.XMLHttpRequest)
{ // code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{ // code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
//document.getElementById('input1').value= xmlhttp.responseText
var data = JSON.parse(xmlhtpp.responseText);
document.getElementById('input1').value = data.name;
}
}
xmlhttp.open("GET","ophalen.php?q="+str,true);
xmlhttp.send();
}
{
if (str=="")
{
document.getElementById('input1').value = xmlhttp.responseText
return;
}
if (window.XMLHttpRequest)
{ // code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{ // code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
//document.getElementById('input1').value= xmlhttp.responseText
var data = JSON.parse(xmlhtpp.responseText);
document.getElementById('input1').value = data.name;
}
}
xmlhttp.open("GET","ophalen.php?q="+str,true);
xmlhttp.send();
}
Het php-gedeelte zo:
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("Includes/functions.php");
include("Includes/connection.php");
$q=$_GET["q"];
$query= mysql_query("
SELECT
*
FROM
test
WHERE
id = '".$q."'"
,$connection);
$row = mysql_fetch_array($query);
echo json_encode(array('name' => 'Dungen', 'sex' => 'M', 'leeftijd' => 25));
mysql_close($connection);
?>
include("Includes/functions.php");
include("Includes/connection.php");
$q=$_GET["q"];
$query= mysql_query("
SELECT
*
FROM
test
WHERE
id = '".$q."'"
,$connection);
$row = mysql_fetch_array($query);
echo json_encode(array('name' => 'Dungen', 'sex' => 'M', 'leeftijd' => 25));
mysql_close($connection);
?>
Ik heb de array nog niet gevuld met de query.
Moet de hele array wel op deze manier worden geëchood?
Het tekstveld blijft leeg of de hele array komt erin te staan {name ....}
En hoe echo ik leeftijd in het andere (2e) tekstveld?
De andere velden kan je benaderen via data.leeftijd en data.sex