$_POST waarde wordt niet doorgegeven bij tweede ajax functie
dit is de html 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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
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
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
<?php
[code]<?php
session_start();
if(!isset($_SESSION["login"]))
{
header("location:login.php");
exit();
}
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<script>
function getAlbums(str)
{
var xmlhttp;
xmlhttp=new XMLHttpRequest();
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
document.getElementById("albumlist").innerHTML=xmlhttp.responseText;
}
}
xmlhttp.open("GET","getalbums.php?id="+str,true);
xmlhttp.send();
}
function getSubalbums(str)
{
var xmlhttp2;
xmlhttp2=new XMLHttpRequest();
xmlhttp2.onreadystatechange=function()
{
if (xmlhttp2.readyState==4 && xmlhttp2.status==200)
{
document.getElementById("subalbumlist").innerHTML=xmlhttp2.responseText;
}
}
xmlhttp2.open("GET","getsubalbums.php?subid="+str,true);
xmlhttp2.send();
}
</script>
<link href="cmscss.css" rel="stylesheet" type="text/css" />
<title>FransVledder - CMS - upload foto's</title>
</head>
<body>
<table>
<form action="pictureupload.php?albumid=<?php echo "".$albumid.""; ?>&subalbumid=<?php echo "".$subalbumid.""; ?>" method="post" enctype="multipart/form-data">
<tr><td>voeg foto's toe</td><td>
<input type="file" name="file[]" multiple id="file" accept="image/jpeg" /></td></tr>
<tr><td>Soort: </td><td>
<select name="soort" onchange="getAlbums(this.value);">
<option value="">selecteer een soort</option>
<option value="1">abstract</option>
<option value="2">bergwandelingen</option>
<option value="3">concerten</option>
<option value="4">reisthema's</option>
<option value="5">reisverslag</option>
<option value="6">sport</option>
</select></td></tr>
<tr><td>
albumnaam: </td>
<td>
<select name="albums" id="albumlist" onchange="getSubalbums(this.value)">
<option value="">selecteer een album</option>
</select>
</td></tr>
<tr><td>
Subalbumnaam: </td><td>
<select name="subalbums" id="subalbumlist">
<option value="">selecteer een subalbum</option>
</select>
</td></tr>
<tr><td></td><td>
<input type="submit" value="upload" /></td></tr>
</form>
</table>
</body>
</html>
?>
[code]<?php
session_start();
if(!isset($_SESSION["login"]))
{
header("location:login.php");
exit();
}
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<script>
function getAlbums(str)
{
var xmlhttp;
xmlhttp=new XMLHttpRequest();
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
document.getElementById("albumlist").innerHTML=xmlhttp.responseText;
}
}
xmlhttp.open("GET","getalbums.php?id="+str,true);
xmlhttp.send();
}
function getSubalbums(str)
{
var xmlhttp2;
xmlhttp2=new XMLHttpRequest();
xmlhttp2.onreadystatechange=function()
{
if (xmlhttp2.readyState==4 && xmlhttp2.status==200)
{
document.getElementById("subalbumlist").innerHTML=xmlhttp2.responseText;
}
}
xmlhttp2.open("GET","getsubalbums.php?subid="+str,true);
xmlhttp2.send();
}
</script>
<link href="cmscss.css" rel="stylesheet" type="text/css" />
<title>FransVledder - CMS - upload foto's</title>
</head>
<body>
<table>
<form action="pictureupload.php?albumid=<?php echo "".$albumid.""; ?>&subalbumid=<?php echo "".$subalbumid.""; ?>" method="post" enctype="multipart/form-data">
<tr><td>voeg foto's toe</td><td>
<input type="file" name="file[]" multiple id="file" accept="image/jpeg" /></td></tr>
<tr><td>Soort: </td><td>
<select name="soort" onchange="getAlbums(this.value);">
<option value="">selecteer een soort</option>
<option value="1">abstract</option>
<option value="2">bergwandelingen</option>
<option value="3">concerten</option>
<option value="4">reisthema's</option>
<option value="5">reisverslag</option>
<option value="6">sport</option>
</select></td></tr>
<tr><td>
albumnaam: </td>
<td>
<select name="albums" id="albumlist" onchange="getSubalbums(this.value)">
<option value="">selecteer een album</option>
</select>
</td></tr>
<tr><td>
Subalbumnaam: </td><td>
<select name="subalbums" id="subalbumlist">
<option value="">selecteer een subalbum</option>
</select>
</td></tr>
<tr><td></td><td>
<input type="submit" value="upload" /></td></tr>
</form>
</table>
</body>
</html>
?>
en dit zijn de 2 php scripts
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
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
<?php
session_start();
if(!isset($_SESSION["login"]))
{
header("location:login.php");
exit();
}
require("connect.php");
echo "<option value=''>selecteer een album</option>";
if(empty($_GET["id"]))
{
exit();
}
else
{
$link = mysqli_connect($dbhost, $dbuser, $dbpass, $dbname);
if(!$link)
{
header("location:uploadpicturesform.php?error=1");
exit();
}
$result = mysqli_query($link, "SELECT albumnaam, albumid FROM albums WHERE albumsoort = ".mysqli_real_escape_string($link, $_GET["id"])."");
if(!$result)
{
header("location:uploadpicturesform.php?error=2");
exit();
}
while($row = mysqli_fetch_assoc($result))
{
echo "<option value='".$row["albumid"]."'>".$row["albumnaam"]."</option>";
}
}
?>
session_start();
if(!isset($_SESSION["login"]))
{
header("location:login.php");
exit();
}
require("connect.php");
echo "<option value=''>selecteer een album</option>";
if(empty($_GET["id"]))
{
exit();
}
else
{
$link = mysqli_connect($dbhost, $dbuser, $dbpass, $dbname);
if(!$link)
{
header("location:uploadpicturesform.php?error=1");
exit();
}
$result = mysqli_query($link, "SELECT albumnaam, albumid FROM albums WHERE albumsoort = ".mysqli_real_escape_string($link, $_GET["id"])."");
if(!$result)
{
header("location:uploadpicturesform.php?error=2");
exit();
}
while($row = mysqli_fetch_assoc($result))
{
echo "<option value='".$row["albumid"]."'>".$row["albumnaam"]."</option>";
}
}
?>
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
41
42
43
44
45
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
41
42
43
44
45
<?php
session_start();
if(!isset($_SESSION["login"]))
{
header("location:login.php");
exit();
}
require("connect.php");
echo "<option value=''>selecteer een subalbum</option>";
if(empty($_GET["subid"]))
{
exit();
}
else
{
$link = mysqli_connect($dbhost, $dbuser, $dbpass, $dbname);
if(!$link)
{
header("location:pictureuploadform.php?error=1");
exit();
}
$albums = (int)$_POST["albums"];
if(!is_int($albums) or $albums <= 0)
{
die("ongeldige invoer voor albumnaam");
}
echo "".$albums."";
$result = mysqli_query($link, "SELECT subalbumnaam, subalbumid FROM subalbums WHERE albumid = ".$albums."");
if(!$result)
{
header("location:pictureuploadform.php?error=2");
exit();
}
while($row = mysqli_fetch_assoc($result))
{
echo "<option value='".$row["subalbumid"]."'>".$row["subalbumnaam"]."</option>";
}
}
?>
session_start();
if(!isset($_SESSION["login"]))
{
header("location:login.php");
exit();
}
require("connect.php");
echo "<option value=''>selecteer een subalbum</option>";
if(empty($_GET["subid"]))
{
exit();
}
else
{
$link = mysqli_connect($dbhost, $dbuser, $dbpass, $dbname);
if(!$link)
{
header("location:pictureuploadform.php?error=1");
exit();
}
$albums = (int)$_POST["albums"];
if(!is_int($albums) or $albums <= 0)
{
die("ongeldige invoer voor albumnaam");
}
echo "".$albums."";
$result = mysqli_query($link, "SELECT subalbumnaam, subalbumid FROM subalbums WHERE albumid = ".$albums."");
if(!$result)
{
header("location:pictureuploadform.php?error=2");
exit();
}
while($row = mysqli_fetch_assoc($result))
{
echo "<option value='".$row["subalbumid"]."'>".$row["subalbumnaam"]."</option>";
}
}
?>
het probleem zit m in dat ik deze melding terugkrijg. "ongeldige invoer voor albumnaam".
ik heb het even gechecked en dit komt doordat $_POST["albums"] continu een lege waarde blijft.
weet iemand hiervoor de oplossing?
Dat werkt al niet. Maar tevens, kijkende naar je code, krijg ik het idee dat je ervanuit gaat dat bij een ajax request (net als bij een gewoon request) de parameters van je form automatisch meegaan. Dat is niet het geval. Je roept de ajax functie namelijk als volgt aan:
Dan gaat dus de waarde van de select mee, maar niet de naam. Die heb je nergens gedefinieerd (in je ajax request) en blijft dus onherkenbaar voor de server.
<option value="8">test</option>
maar die waarde wordt dus niet uitgelezen. veranderen naar POST helpt trouwens niet. Bij de eerste aanvraag wordt hij dus wel correct uitgelezen, wat in essentie hetzelfde script is
Gewijzigd op 29/01/2013 23:32:42 door Marijn Struijlaart
Het tweede punt wuif je direct weg, maar is de verdere oplossing voor je probleem. De naam van het select is 'albums' en je leest het in je php script uit met $_POST['albums']. Alleen, je voegt het in de parameterslijst niet toe als albums, maar als id. Dus ofwel verander het in javascript naar albums, ofwel verander het in php naar id.
Toevoeging op 29/01/2013 23:34:23:
Marijn Struijlaart op 29/01/2013 23:30:28:
maar die waarde wordt dus niet uitgelezen. veranderen naar POST helpt trouwens niet. Bij de eerste aanvraag wordt hij dus wel correct uitgelezen, wat in essentie hetzelfde script is
Alleen daar lees je het uit als $_GET["id"] wat toch iets heel anders is als $_POST["albums"]
Gewijzigd op 29/01/2013 23:36:28 door Erwin H
ah nee, ik zag t al. puur een naamgevingsdingetje. Ik moest ook die is_int check nog in mijn eerste php script stoppen, maar dat doet er verder niet toe. heeft te maken dat ik hetzelfde script ook gebruikte via een andere pagina. merci!