Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Arrasted

delete com chekbox

Recommended Posts

Boa tarde pessoal, dei uma boa revirada no forum para achar o erro, mais nada.

listo todos os registros com um checkbox ao lado, para apagar varios registros de uma só vez... em access funcionava, nao encontrei a solução para mysql, se alguém puder dar uma olhadinha, agradeço

 

exclui.asp

CODE
<!--#include file="utils/open.asp" -->

<%

Set rs = Conn.Execute("SELECT * FROM produtos ORDER BY nome_produto ASC")

%>

<form name="apaga" method="post" action="do_exclui.asp">

<input type="hidden" name="IDS" id="IDS" />

<%

While not rs.EOF

%>

<input name="checkbox" type="checkbox" value="<%=rs("id")%>" /><%= rs("nome_produto")%> <br />

<%

rs.MoveNext

wend

%>

<input type="button" value="Apagar" class="btnp" onclick="java script:guardar_codigos();" />

</form>

do_exclui.asp

CODE
<!--#include file="utils/open.asp" -->

<%

ids = Request.Form("IDS")

Set rs = createobject("Adodb.Recordset")

Set rs.activeconnection = Conn

rs.cursortype = 3

Sql="Delete from produtos Where id in ("& ids &");"

Set rs = Conn.Execute(Sql)

Set rs = Nothing

Set Conn = Nothing

Response.Write "Produto Apagado do Banco de dados"

%>

o js.

CODE

function guardar_codigos(){

var inputs = document.getElementsByTagName("input"); // pegando todos os campos inputs

var qtd_inputs = 0;

var ids="";

for (i=0;i<inputs.length;i++){

if(inputs.checked == true){ // se o campo for do tipo checked

qtd_inputs++;

ids = inputs.value+","+ids; // coloca na varial ids o valor do campo checked separados por virgula

}

}

if (qtd_inputs == 0 ){ // se nenhum campo for marcado envia mensagem de erro

window.alert("Deve selecionar pelo menos um produto.");

}else{ // pega os ids e coloca-se no campo hidden do form

document.apaga.IDS.value = ids;

document.apaga.submit(); // envia o form

}

}

nao achei nadica q possa ajudar

 

[]'s

Compartilhar este post


Link para o post
Compartilhar em outros sites

tenta mudar o nome do input:

 

<input name="IDS" type="checkbox" value="<%=rs("id")%>" /><%= rs("nome_produto")%> <br />

ate +

Compartilhar este post


Link para o post
Compartilhar em outros sites

[MySQL][ODBC 3.51 Driver][mysqld-5.0.27-community-nt-log]You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ')' at line 1

 

/app3/gerencia/do_exclui.asp, line 22

 

 

linha 22 -------> Set rs = Conn.Execute(Sql)

Compartilhar este post


Link para o post
Compartilhar em outros sites

[MySQL][ODBC 3.51 Driver][mysqld-5.0.27-community-nt-log]You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ')' at line 1

 

/app3/gerencia/do_exclui.asp, line 22

 

 

linha 22 -------> Set rs = Conn.Execute(Sql)

 

Conn.Execute("Delete from produtos Where id in ("& ids &")")

Compartilhar este post


Link para o post
Compartilhar em outros sites

Dê um Response.Write na sua SQL e verifique se está formatada corretamente.

 

Outra coisa, não precisa de JavaScript, se os checkboxes possuem o mesmo nome eles já virão separados por virgula ao fazer o request.

Compartilhar este post


Link para o post
Compartilhar em outros sites

response.write da SQL

Delete from produtos Where id in (, 5);

 

com o js nao funfou, o ruim é que o usuário pode clicar no botão e noar ser avisado, vai passar o id 0

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então isso vai dar erro mesmo tem que receber os parametros separados por vírgula mas o primeiro parâmetro não pode estar vazio, siga o conselho do salgado.

 

O comando tem que ficar assim:

 

Delete from produtos Where id in (1,2,3,4,5);

 

Abraços

 

Estevam

Compartilhar este post


Link para o post
Compartilhar em outros sites

Um dos problemas do access é tentar ajudar ao programador e passar por cima de erros, fatalmente ele estava aceitando o a SQL com erro, assim como aceita o "Delete * From ...".

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.