Pegar valor de select - Classe Uploadify

08/08/2013

0

PHP

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="$" class="uploadify-queue-item">\
<div class="cancel">\
<a href="javascript:$(\'#$\').uploadify(\'cancel\', \'$\')">X</a>\
</div>\
Arquivo: <span class="fileName">$ ($)</span><span class="data"></span>\
<div class="uploadify-progress">\
<div class="uploadify-progress-bar"><!--Progress Bar--></div>\
</div>\
</div>'
});
});
Edson Pereira

Edson Pereira

Responder

Posts

08/08/2013

William

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:

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

08/08/2013

Edson Pereira

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)
'scriptData'    : {'clientes': $('#clientes').val()} ,

Onde clientes é o nome do select
Responder

Que tal ter acesso a um e-book gratuito que vai te ajudar muito nesse momento decisivo?

Ver ebook

Recomendado pra quem ainda não iniciou o estudos.

Eu quero
Ver ebook

Recomendado para quem está passando por dificuldades nessa etapa inicial

Eu quero

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar