Jump to content


Photo

Ajuda Com Formulários.


  • Faça o login para participar
2 replies to this topic

#1 luckynho

luckynho

    12 Horas

  • Usuários
  • 120 posts
  • Sexo:Não informado
  • Localidade:São Paulo

Posted 06/07/2007, 11:47

Pessoal, bom dia para todos.

Seguinte.. eu trampo numa empresa de e-RH online (HRsmart)
Temos uma ferramenta gringa e adptamos formulários de acordo com as necessidades de cada cliente.

Eu tenho sérios problemas pois nao entendo muito de CGI, mas conheço bem html e asp, porem o asp nao tem nada haver com o CGI, entao eu expliquei e nao expliquei ao msm tempo... rs... vamos la!!

Os formulários trabalham em parceria com mySQL, portanto (HTML, CGI, mySQL)... entao vamos a minha duvida de sempre !!

Tenho o formulário pronto, ai um cliente pediu pra adicionar um campo, dois, tres, que seja. Até a criação dos campos no mySQL é tranquilo. O Que eu nao consigo fazer é o básico: CADASTRAR, ALTERAR

Anexo, tem um arquivo no qual eu uso bastante. Entao pelo que notei, ele (UNICO ARQUIVO) faz alteracao e cadastra.

O que eu preciso realmente entender, ou nem preciso entender, só me digam como eu adiciono um novo campo, altero e etc... já tentei e tals tipo (onde tem o nome do form) colocar ao lado e tal... mas queria mesmo é ter a certeza de que estou fazendo.

Obrigado

Attached Files


Edição feita por: luckynho, 06/07/2007, 11:48.


#2 namedrisk

namedrisk

    Novato no fórum

  • Usuários
  • 11 posts
  • Sexo:Não informado

Posted 10/07/2007, 19:32

Pessoal, bom dia para todos.

Seguinte.. eu trampo numa empresa de e-RH online (HRsmart)
Temos uma ferramenta gringa e adptamos formulários de acordo com as necessidades de cada cliente.

Eu tenho sérios problemas pois nao entendo muito de CGI, mas conheço bem html e asp, porem o asp nao tem nada haver com o CGI, entao eu expliquei e nao expliquei ao msm tempo... rs... vamos la!!

Os formulários trabalham em parceria com mySQL, portanto (HTML, CGI, mySQL)... entao vamos a minha duvida de sempre !!

Tenho o formulário pronto, ai um cliente pediu pra adicionar um campo, dois, tres, que seja. Até a criação dos campos no mySQL é tranquilo. O Que eu nao consigo fazer é o básico: CADASTRAR, ALTERAR

Anexo, tem um arquivo no qual eu uso bastante. Entao pelo que notei, ele (UNICO ARQUIVO) faz alteracao e cadastra.

O que eu preciso realmente entender, ou nem preciso entender, só me digam como eu adiciono um novo campo, altero e etc... já tentei e tals tipo (onde tem o nome do form) colocar ao lado e tal... mas queria mesmo é ter a certeza de que estou fazendo.

Obrigado


Vamos tentar:

começando por aqui:

use CGI;
my $co = new CGI;


Essas duas linhas definem o nome e da variavel chave e a recepção dos dados do formulario. Com estas duas formulas declaradas você pode receber N campos do formulario exemplo:

use CGI;
my $formulario = new CGI;
$email = $formulario->param('nome_do_campo_no_html_que_sera_recebido_aqui');
#exemplo:
$email = $formulario->param('email');


como você pode ver:

$applicantid = $co->param('applicantid');


mais adiante vamos ao que você quer:

elsif($action eq 'update' && $applicantid ne '' && $jobid ne '') {
my $sth=$dbh->prepare("UPDATE applicantinterviewform SET name = ?, address1 = ?, address2 = ?, city = ?, state = ?, country = ?, zip = ?, phone1 = ?, phone2 = ?, phone3 = ?, email = ?, clr =?, currentemployer = ?, reasonforleaving = ?, payrate = ?, benefits = ?, dateavailable = ?, formeremployee = ?, reasonforleavingeds = ?, lastmanager = ?, skills = ?, notes = ?, workauthorization = ?, workauthorizationexplanation = ?, offeractivity = ?, travelavailability = ?, backgroundcheck = ?, livingexpenses = ?, cashadvances = ?, offerdiscussed = ?, nextstep = ? WHERE applicantid = ? AND jobid = ?");
my($updated)=$sth->execute($name,$address1,$address2,$city,$state,$country,$zip,$phone1,$phone2,$phone3,$email,$clr,$currentemployer,$reasonforleaving,$payrate,$benefits,$dateavailable,$formeremployee,$reasonforleavingeds,$lastmanager,$skills,$notes,$workauthorization,$workauthorizationexplanation,$offeractivity,$travelavailability,$backgroundcheck,$livingexpenses,$cashadvances,$offerdiscussed,$nextstep,$applicantid,$jobid);
$sth->finish();
$dbh->disconnect();

push(@unhide,"updated") if($updated>0 && $updated ne '0E0');
push(@unhide,"notupdated") if($updated<=0 || $updated eq '0E0');
goto RENDER_PAGE;
}
elsif($action eq 'insert' && $applicantid ne '' && $jobid ne '') {
my $sth=$dbh->prepare("INSERT INTO applicantinterviewform SET name = ?, address1 = ?, address2 = ?, city = ?, state = ?, country = ?, zip = ?, phone1 = ?, phone2 = ?, phone3 = ?, email = ?, clr =?, currentemployer = ?, reasonforleaving = ?, payrate = ?, benefits = ?, dateavailable = ?, formeremployee = ?, reasonforleavingeds = ?, lastmanager = ?, skills = ?, notes = ?, workauthorization = ?, workauthorizationexplanation = ?, offeractivity = ?, travelavailability = ?, backgroundcheck = ?, livingexpenses = ?, cashadvances = ?, offerdiscussed = ?, nextstep = ?, applicantid = ?, jobid = ?");

my($added)=$sth->execute($name, $address1, $address2, $city, $state, $country, $zip, $phone1, $phone2, $phone3, $email, $clr, $currentemployer, $reasonforleaving, $payrate, $benefits, $dateavailable, $formeremployee, $reasonforleavingeds, $lastmanager, $skills, $notes, $workauthorization, $workauthorizationexplanation, $offeractivity, $travelavailability, $backgroundcheck, $livingexpenses, $cashadvances, $offerdiscussed, $nextstep, $applicantid, $jobid);
$sth->finish();
$dbh->disconnect();

push(@unhide,"added") if($added>0);
push(@unhide,"notadded") if($added<=0);
goto RENDER_PAGE;
}


Agora temos esses 2 elsif que são chamados quando o que pedem esta ok com a verificação vamos la:

o 1 é o de atualizar "update" ou editar como muitos chamam:

elsif($action eq 'update' && $applicantid ne '' && $jobid ne '') {

Quanto o valor da variavel $action for igual a 'update' e $applicantid não estiver vazio e nem o $jobid estiver vazio, ele ira atualizar algum registro.

my $sth=$dbh->prepare("UPDATE applicantinterviewform SET name = ?, address1 = ?, address2 = ?, city = ?, state = ?, country = ?, zip = ?, phone1 = ?, phone2 = ?, phone3 = ?, email = ?, clr =?, currentemployer = ?, reasonforleaving = ?, payrate = ?, benefits = ?, dateavailable = ?, formeremployee = ?, reasonforleavingeds = ?, lastmanager = ?, skills = ?, notes = ?, workauthorization = ?, workauthorizationexplanation = ?, offeractivity = ?, travelavailability = ?, backgroundcheck = ?, livingexpenses = ?, cashadvances = ?, offerdiscussed = ?, nextstep = ? WHERE applicantid = ? AND jobid = ?");

UPDATE applicantinterviewform = significa que ele ira atualizar algo nessa tabela
SET name = ?, = o que sera atualizado (o meio que esse sistema usa é muito bom pois utiliza o famoso "place holder" que impede a manipulação de dados e acesso ao banco de dados). Como você pode ver ele tem o nome do campo um igual e a interrogação separando outros campos por virgula isso significa que você ira fornecer o valor do nome e outros dados depois na execução da query do MySQL.
WHERE applicantid = ? AND jobid = ? = significa que ele so ira atualizar quando ele encontrar alguem com o applicantid e jobid iguais aos fornecidos.

my($updated)=$sth->execute($name,$address1,$address2,$city,$state,$country,$zip,$phone1,$phone2,$phone3,$email,$clr,$currentemployer,$reasonforleaving,$payrate,$benefits,$dateavailable,$formeremployee,$reasonforleavingeds,$lastmanager,$skills,$notes,$workauthorization,$workauthorizationexplanation,$offeractivity,$travelavailability,$backgroundcheck,$livingexpenses,$cashadvances,$offerdiscussed,$nextstep,$applicantid,$jobid);


Está é a query sendo executada e passando todos os valores referentes as interrogações...


Espero ter ajudado, achei um topico legal aqui no forum explicando um pouco mais sobre perl e MySQL de uma olhada pode esclarecer alguma outra duvida sua:
http://forum.wmonlin...howtopic=128573

#3 victorhb

victorhb

    24 Horas

  • Usuários
  • 489 posts
  • Sexo:Masculino
  • Localidade:Brasília-DF

Posted 10/07/2007, 19:49

Só uma coisa, CGI não é linguagem, mas sim uma especificação então tem cgi com php, com asp, com java, c++ etc... Então não faz sentido você dizer que CGI não tem nada a ver com asp.




1 user(s) are reading this topic

0 membro(s), 1 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq