Array
(
)

Pegar valor de select - Classe Uploadify

PHP
Edson Pereira
   - 08 ago 2013

Preciso salvar uma imagem no BD e pra fazer o upload estou usando a classe uploadify. Porém eu preciso salvar também o código do cliente na tabela fotos ao fazer o upload. A imagem está gravando corretamente, apenas o código do cliente que vem de um campo select não consigo pegar. Segue abaixo o código fonte:
O meu form:
<form action="" method="post" >
<label>Selecione o cliente:</label><br />
<select name="clientes" class="cxMedia" >
<option value="-1">Selecione</option>
<?php
if (!empty($lista)) {
foreach ($lista as $ls) {
echo "<option value=" . $ls->getCod() . " >" . $ls->getNome() . "</option>";
}
}
?>
</select><br /><br />
<input id="file_upload" class="margem" name="file_upload" type="file" multiple="true">
<a href="javascript:$('#file_upload').uploadify('upload', '*');">Carregar Arquivos</a> |
<a href="javascript:$('#file_upload').uploadify('cancel', '*');">Cancelar Arquivos</a>
<br /><br />
</form>
O código PHP:
if (!empty($_FILES) && $_POST['token'] == $verifyToken) {

$tempFile = $_FILES['Filedata']['tmp_name'];
$targetPath = $targetFolder;
$tipo = strrchr($_FILES['Filedata']['name'], ".");
$targetFile = $targetPath . '/' . md5($_FILES['Filedata']['name']) . date("dmYHis") . $tipo;
//rtrim($targetPath, '/') . '/' . $_FILES['Filedata']['name'];
// Validate the file type
$fileTypes = array('jpg', 'jpeg', 'gif', 'png'); // File extensions
$fileParts = pathinfo($_FILES['Filedata']['name']);
$codigo = $_POST["clientes"];//Tento pegar o código do cliente aqui
$img = $pasta . "/" . md5($_FILES['Filedata']['name']) . date("dmYHis") . $tipo;
if (in_array($fileParts['extension'], $fileTypes)) {
//mysql_query("insert into fotos_clientes (cod_cliente, foto) values ('$cod_cliente','$img')");

$foto = new FotosClientes();

$foto->setCod_cliente($codigo);
$foto->setFoto($img);
$foto_dao->gravar($foto);
move_uploaded_file($tempFile, $targetFile);
echo '1';
} else {
echo 'Invalid file type.';
}
O Javascript
<script type="text/javascript">
<?php $timestamp = time(); ?>
$(function() {
$('#file_upload').uploadify({
'formData' : {
'timestamp' : '<?php echo $timestamp; ?>',
'token' : '<?php echo md5('unique_salt' . $timestamp); ?>'
},
'swf' : 'uploadify/uploadify.swf',
'uploader' : 'cad_foto_cliente.php',
'buttonText' : 'SELECIONAR',
'multi' : true,
'auto' : false,
'itemTemplate' : '<div id="${fileID}" class="uploadify-queue-item">\
<div class="cancel">\
<a href="javascript:$(\'#${instanceID}\').uploadify(\'cancel\', \'${fileID}\')">X</a>\
</div>\
Arquivo: <span class="fileName">${fileName} (${fileSize})</span><span class="data"></span>\
<div class="uploadify-progress">\
<div class="uploadify-progress-bar"><!--Progress Bar--></div>\
</div>\
</div>'
});
});#Código

#Código
#Código

William (devwilliam)
   - 08 ago 2013

Edson primeiramente seja bem vindo ao fórum, vamos organizar as informações:

Acho que você teve problemas para usar a tag CODE no seu post, utilize da seguinte maneira:

Abra o código com "code" entre colchetes

Feche o código com "/code" entre colchetes

Bom quanto ao código, vc chegou a testar se está carregando o código do cliente no select,nessa parte do código:

#Código

if (!empty($lista)) {<br />
     foreach ($lista as $ls) {<br />
           echo "<option value=" . $ls-getCod() . " >" . $ls-getNome() . "</option>";<br />
   }<br />
}<br />

Edson Pereira
   - 08 ago 2013

Desculpe, primeira vez., rsrs...
Já testei sim e o código está carregando sim. O problema é passar o valor via javascript na classe uploadify. Existe uma propriedade da classe chamada scriptData, porém não consigo usa-la. Já tentei tb passar o código por sessão, ele vai mas na hr de chamar pra gravar no banco sempre grava o valor 0 (zero)
#Código

'scriptData'    : {'clientes': $('#clientes').val()} ,

Onde clientes é o nome do select