Inferi Posted April 9, 2015 at 10:36 AM Report Share #580947 Posted April 9, 2015 at 10:36 AM (edited) Já não pegava em PHP à uns dois anitos e ando meio enferrujado. Surgiu uma oportunidade de fazer uma brincadeira aqui para o meu chefe. Então é o seguinte, tenho um formulário em que o utilizador pode inserir páginas pessoais. E adicionar mais se assim o entender. Mas, dá-me erro na passagem do array do input da página pessoal. Código php <td align="left" id="dynamicInput"> <table> <input type="text" size="25" maxlength="35" name="PagPessoal[]" id="fonttxt"> <img id="add" src="images/add.png" style="cursor: pointer;" onclick="addInput('dynamicInput');" height="15" width="15"> </table> </td> Código javascript fields = 0; function addInput() { if (fields != 4) { document.getElementById('dynamicInput').innerHTML += "<input type='text' size='25' maxlength='35' name='PagPessoal[]' id='fonttxt'><br>"; fields += 1; } else { alert ("Apenas são permitidas 5 páginas pessoais."); document.ajaut.add.disabled=true; } } Código php ao inserir na BD $pgn = $_POST['PagPessoal']; $pgnPessoal = implode(";",$pgn); $sql = ("Insert INTO utilizador (nome, apelido, data_nasc, sexo, morada, codigo_post, localidade, mail, telefone, telemovel, alcunha, habilitacoes, assocaja, numeroassoc, actividadeprof, organizacao, outrasact, utilidadeut, pgnpessoal, outrasinf) VALUE ('$_POST[nome]','$_POST[apelido]','$dtNasc','$_POST[sexo]','$_POST[morada]','$codPost','$_POST[localidade]', '$_POST[mail]','$_POST[telefone]','$_POST[telemovel]','$_POST[alcunha]','$_POST[habilit]','$_POST[assoc]','$_POST[NrAssoc]', '$_POST[actividades]','$_POST[organ]','$_POST[outrAct]','$_POST[utl]','$pgnPessoal','$_POST[OutrInf]')"); $conn->query ($sql); Imagem de Erro Edited April 9, 2015 at 10:44 AM by Inferi Link to comment Share on other sites More sharing options...
HappyHippyHippo Posted April 9, 2015 at 10:51 AM Report Share #580950 Posted April 9, 2015 at 10:51 AM faz output do conteudo de $_POST['PagPessoal'] e diz o que te aparece IRC : sim, é algo que ainda existe >> #p@p Portugol Plus Link to comment Share on other sites More sharing options...
Inferi Posted April 9, 2015 at 10:59 AM Author Report Share #580951 Posted April 9, 2015 at 10:59 AM (edited) Quando eu coloco apenas uma página aparece: Array ( [0] => teste ) Mas quando eu adiciono mais páginas pessoais dá este erro Notice: Undefined index: PagPessoal in C:\wamp\www\AJA\pages\insereform.php on line 48 Edited April 9, 2015 at 10:59 AM by Inferi Link to comment Share on other sites More sharing options...
bioshock Posted April 9, 2015 at 11:13 AM Report Share #580953 Posted April 9, 2015 at 11:13 AM O erro que te é dado (na imagem) é diferente do que o que nos estás a dizer. Na imagem é dito Undefined Index: PagPessoal[]. O que significa que algures no teu código estavas (estás) a fazer referência a $_POST['PagPessoal[]'] e não a $_POST['PagPessoal']. <input type="text" size="25" maxlength="35" name="PagPessoal[]"> <input type="text" size="25" maxlength="35" name="PagPessoal[]"> <input type="text" size="25" maxlength="35" name="PagPessoal[]"> <input type="text" size="25" maxlength="35" name="PagPessoal[]"> $paginas = $_POST['PagPessoal']; foreach($paginas as $pagina) echo $pagina . '<br/>'; Link to comment Share on other sites More sharing options...
HappyHippyHippo Posted April 9, 2015 at 11:14 AM Report Share #580954 Posted April 9, 2015 at 11:14 AM apesar de ver dois problema, continuo a achar isso muito estranho, pois não deverá ser deles (provavelmente da maneira como estás a fazer o envio do formulário, código não apresentado) - primeiro problema: atributos id são para ser únicos, o que não acontece quando adicionas mais campos - segundo problema: o elemeno inserido fica fora da tabela onde se encontra o elemento já existente, fica ao nível após a tabela apresentada IRC : sim, é algo que ainda existe >> #p@p Portugol Plus Link to comment Share on other sites More sharing options...
Inferi Posted April 9, 2015 at 11:28 AM Author Report Share #580957 Posted April 9, 2015 at 11:28 AM (edited) @bioshock Notice: Undefined index: PagPessoal in C:\wamp\www\AJA\pages\insereform.php on line 48 @happyHippyHippo Então nesse caso como consigo ir buscar os valores dos diversos campos que vão sendo adicionados pelo utilizador? Tendo em conta que podem ser até 5 campos. Será preciso do lado do formulario, juntar tudo num campo hiden e depois ir buscar a esse campo com o POST? Edited April 9, 2015 at 11:29 AM by Inferi Link to comment Share on other sites More sharing options...
HappyHippyHippo Posted April 9, 2015 at 11:37 AM Report Share #580961 Posted April 9, 2015 at 11:37 AM @bioshock Notice: Undefined index: PagPessoal in C:\wamp\www\AJA\pages\insereform.php on line 48 qual é essa linha ? @happyHippyHippo Então nesse caso como consigo ir buscar os valores dos diversos campos que vão sendo adicionados pelo utilizador? Tendo em conta que podem ser até 5 campos. não necessitas do id para serem enviados pelo formulário IRC : sim, é algo que ainda existe >> #p@p Portugol Plus Link to comment Share on other sites More sharing options...
Inferi Posted April 9, 2015 at 12:59 PM Author Report Share #580970 Posted April 9, 2015 at 12:59 PM sim, mas preciso do id para os css a linha é $paginas = $_POST['PagPessoal']; Link to comment Share on other sites More sharing options...
HappyHippyHippo Posted April 9, 2015 at 01:30 PM Report Share #580971 Posted April 9, 2015 at 01:30 PM sim, mas preciso do id para os css usa classes ... a linha é $paginas = $_POST['PagPessoal']; como o bioshock disse, estás a apresentar erros diferentes u é sonre PagPessoal[] e outro é sobre PagPessoal o que demonstra que o código que apresentaste inicialmente já se encontra alterado. logo, será impossivel te ajudar sobre o problema por falta de informação correcta IRC : sim, é algo que ainda existe >> #p@p Portugol Plus Link to comment Share on other sites More sharing options...
Inferi Posted April 9, 2015 at 02:04 PM Author Report Share #580975 Posted April 9, 2015 at 02:04 PM (edited) O código está igual. Neste momento alterei os ID para CLASS e tenho o código assim: Aqui é o código JS que acrescenta um input text quando o utilizador carrega na imagem "add" fields = 0; function addInput() { if (fields != 4) { document.getElementByClass('dynamicInput').innerHTML += "<input type='text' size='25' maxlength='35' name='PagPessoal[]' class='fonttxt'><br>"; fields += 1; } else { alert ("Apenas são permitidas 5 páginas pessoais."); document.ajaut.add.disabled=true; } } O HTML <td align="left" class="dynamicInput"> <table> <input type="text" size="25" maxlength="35" name="PagPessoal[]" class="fonttxt"> <img class="add" src="images/add.png" style="cursor: pointer;" onclick="addInput('dynamicInput');" height="15" width="15"> </table> </td> E o PHP que faz a transição para a BD $paginas = $_POST['PagPessoal']; echo $paginas; E o erro que me dá: EDIT: Já está a passar o valor, usei o foreach, mas o javascript desde que mudei para class deixou de funcionar e não adiciona nada. Edited April 9, 2015 at 02:09 PM by Inferi Link to comment Share on other sites More sharing options...
HappyHippyHippo Posted April 9, 2015 at 02:09 PM Report Share #580977 Posted April 9, 2015 at 02:09 PM e confirmar que a mensagem de erro continua a ser a apresentada na imagem do primeiro post ? IRC : sim, é algo que ainda existe >> #p@p Portugol Plus Link to comment Share on other sites More sharing options...
Inferi Posted April 9, 2015 at 02:11 PM Author Report Share #580978 Posted April 9, 2015 at 02:11 PM e confirmar que a mensagem de erro continua a ser a apresentada na imagem do primeiro post ? aquela mensagem de erro so aparecia quando adicionava mais algum campo text. Neste momento não consigo adicionar mais nenhum, o JS deixou de trabalhar desde que alterei de ID para CLASS Link to comment Share on other sites More sharing options...
HappyHippyHippo Posted April 9, 2015 at 02:15 PM Report Share #580979 Posted April 9, 2015 at 02:15 PM e porque alteraste o id dynamicInput para classe ? eu falei que o id fonttxt e não isso IRC : sim, é algo que ainda existe >> #p@p Portugol Plus Link to comment Share on other sites More sharing options...
Inferi Posted April 9, 2015 at 02:53 PM Author Report Share #580986 Posted April 9, 2015 at 02:53 PM Já alterei e já adiciona, mas quando tento passar com duas ou mais dá os seguintes erros. Eis as linhas correspondentes $paginas = $_POST['PagPessoal']; foreach($paginas as $pagina); echo $pagina; Link to comment Share on other sites More sharing options...
HappyHippyHippo Posted April 9, 2015 at 03:13 PM Report Share #580987 Posted April 9, 2015 at 03:13 PM ten um url onde se possa ver o javascript a funcionar ? IRC : sim, é algo que ainda existe >> #p@p Portugol Plus Link to comment Share on other sites More sharing options...
bioshock Posted April 9, 2015 at 03:19 PM Report Share #580988 Posted April 9, 2015 at 03:19 PM Relativamente ao primeiro erro, antes de escreveres $pagina = $_POST['pagPessoal'], escreve o seguinte e diz-nos o output: print_r($_POST); O segundo e terceiro erro devem-se ao teu ponto e vírgula na linha do ciclo foreach($paginas as $pagina); // <---- remove este ponto e virgula Link to comment Share on other sites More sharing options...
Inferi Posted April 9, 2015 at 03:28 PM Author Report Share #580989 Posted April 9, 2015 at 03:28 PM (edited) Array ( [nome] => Diogo [apelido] => Jesus [ano] => 1992 [mes] => 02 [dia] => 07 [sexo] => M [morada] => Ferraria - Rua Principal Nº 12 [codpost] => 3050 [codpost2] => 101 [localidade] => Barcouço [mail] => diogoj_1992@hotmail.com [telefone] => 916837624 [telemovel] => 916837624 [alcunha] => Baixinho [habilit] => 4 [assoc] => S [NrAssoc] => 2355584 [actividades] => Informática [organ] => Pavigrés [outrAct] => Futsal [utl] => Tudo um pouco [OutrInf] => Adoro carros [submit] => Enviar ) Edited April 9, 2015 at 03:29 PM by Inferi Link to comment Share on other sites More sharing options...
bioshock Posted April 9, 2015 at 03:32 PM Report Share #580991 Posted April 9, 2015 at 03:32 PM Então e não vês aí nada de errado? Link to comment Share on other sites More sharing options...
Inferi Posted April 9, 2015 at 03:33 PM Author Report Share #580992 Posted April 9, 2015 at 03:33 PM ten um url onde se possa ver o javascript a funcionar ? http://jsbin.com/cayutugigi/1/ Então e não vês aí nada de errado? Vejo que não está nada acerca da PagPessoal, ou seja o JS está a implementar uma nova input text de forma incorrecta. porque se eu não adicionar mais nenhuma o valor passa Link to comment Share on other sites More sharing options...
bioshock Posted April 9, 2015 at 03:37 PM Report Share #580993 Posted April 9, 2015 at 03:37 PM Mostra-nos o HTML do formulário completo. Até agora tens mostrado apenas um excerto, portanto, eu presumo que estás a fazer algo do género (?): <form method="POST" action="oTeuUrl.php"> <input type="text" name="nome"/> <input type="text" name="mail"/> <!-- etc --> <input type="text" name="PagPessoal[]"/> <input type="text" name="PagPessoal[]"/> </form> Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now