Hallo allemaal, ik ben bezig een module te maken waarmee iemand foto's op zijn website kan uploaden in albums en subalbums. Daarvoor gebruik ik nu een option list waarbij men een bestaand album kan selecteren. omdat er soms een keuze moet worden gemaakt uit zowel soort, album en subalbum wilde ik ajax gebruiken zodat je niet de hele tijd hoeft door te klikken. ik had eigenlijk nog geen ervaring met ajax, dus daar loopt het misschien ook wel ergens fout.
dit is de html code
<?php
<?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
<?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>";
}
}
?>
<?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>";
}
}
?>
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?
1.538 views