Mijn $_FILES array blijft leeg.
Ik heb al alles nagekeken van mijn html
zoals enctype enzo.
Maar toch blijft mijn $_FILES array leeg.
mijn html staat op http://test.vlsolutions.nl/add-portfolio
Als je op submit klikt dan heb ik een vardump geplaatst van de $_FILES, maar hij blijft leeg.
Misschien handig om enige, relevante (!), code te plaatsen?
Yo Mister Greenday graag even de php code, daar kunnen we meer mee :-)
Het ligt aan de hmtl die je kan vinden op die link.
maar speciaal voor jou hier de code:
(tussen php tags voor de highlighting)
<?php
<form action="/add-portfolio.php" method='post' id='add_portfolio_item_form' enctype='multipart/form-data'>
<h3>Portfolio Item toevoegen</h3>
<div class="hr dotted clearfix">&nbsp;</div>
<ul>
<li class="clearfix">
<label for="title">Titel</label>
<input type='text' name='title' id='title' placeholder="Titel" />
<div class="clear"></div>
<p id='title_error' class='error'>Je hebt geen titel ingevuld</p>
</li>/* enz */

<li class="clearfix">
<label for="photo1">Foto 1</label>
<input type="file" name='photo1' id="photo1" />
<div class="clear"></div>
<p id='photo1_error' class='error'>Je hebt geen foto toegevoegd</p>
</li>
<li class="clearfix">
<label for="photo1Description">Beschrijving</label>
<input type='text' name='photo1Description' id='photo1Description' placeholder="Beschrijving" />
<div class="clear"></div>
<p id='photo1Description_error' class='error'>Je hebt geen beschrijving bij de foto</p>
</li> /* enz */

<li class="clearfix">
<p id="output" ></p>
<p id='portfolio_item_success' class='success'>Het porfolio item is succesvol toegevoed.</p>
<p id='portfolio_item_fail' class='error'>Sorry, er is iets fout gegaan, probeer het later nog een keer.</p>
<div id="button">
<input type='submit' id='send_portfolio_item' class="button" value='Submit' />
</div>
</li>
</ul>
</form>

/* De javascript die de form verstuurt */
$(document).ready(function() {
$('#add_portfolio_item_form').submit(function(e) {
e.preventDefault();

var error = false;

var title = $('#title').val();

if(title.length <= 3 || title.length >= 80) {
var error = true;
$('#title_error').fadeIn(500);
}
else {
$('#title_error').fadeOut(500);
} /* enz */

if(error == false) {
$('send_portfolio_item').attr({'disabled' : 'true', 'value' : 'Sending...' });
$.ajax({
type: "POST",
url: "/add-portfolio.php",
data: $('#add_portfolio_item_form').serialize(),
success: function(msg) {
$('#output').html(msg);

if(msg == 'success'){
$('#button').remove();
$('#porfolio_item_success').fadeIn(500);
}else{
$('#portfolio_item_fail').fadeIn(500);
$('send_portfolio_item').removeAttr('disabled').attr('value', 'Submit');
}
}

});
}
});
});
?>
Je stuurt de gegevens van het form via een AJAX verbinding, klopt dat?

Dan klopt het namelijk ook dat je FILES array leeg blijft. Je kan geen bestanden versturen via AJAX, in elk geval niet via de normale manier. Check de JQuery form plugin voor een oplossing: http://malsup.com/jquery/form/
@Erwin H: Bedankt! Begrijp ik het goed dat als ik dit toevoeg:
$('#add_portfolio_item_form').ajaxForm(function() { });
en dan vervolgens met mijn ajax code het formulier verzend, dat het dan wel goed moet gaan?

Je moet wel de plugin laden.

Dan zou het volgens mij met deze code moeten kunnen:

$('#add_portfolio_item_form').ajaxForm();

En anders nog zo:

$('#add_portfolio_item_form').ajaxForm(function(){
  $(this).ajaxSubmit();
});


[size=xsmall]Toevoeging op 11/04/2012 12:23:32:[/size]

Waarbij je bij het laatste nog extra opties mee kunt geven (zie ook de Examples tab op de site die ik gaf).

Reageren