Ir para conteúdo

Arquivado

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

Paulo Vinícius Matos

Realizar com um delete com um JS no bd

Recommended Posts

Boa tarde, prezados. Bem, estudou desenvolvimento um sistema. Porém acabei de me debater com um problema. Gostaria de remover um coteúdo através do ID da coluna pelo JS. Segue os códigos:

 

 

Código que lista informações que contém no bd.

<?phpecho '<fieldset class="formulario">';echo '<legend>» Editar </legend>';	require('../conn/conn.php');	echo "<table border='0'><thead><th>Descrição</th></thead>";		echo "<tbody>"; 	$sql="SELECT * FROM origem ORDER BY id";	$listagem = mysql_query($sql);		while($row = mysql_fetch_array($listagem)){			echo "<tr><td>" . $row['descricao'] . "</td>"."<td><img src='img/delete.png' onclick="NOME DA FUNCAO QUE VAI REMOVER???"/></td>"."<td><img src='img/edit.png'/></td></tr>";		}		echo "</tbody></table>";		echo '</fieldset>';	?>

Código JS

function confirm_remove_process(){   send_post('form_delete_processo','dao_delete_processo',resetFormProcesso);}function resetFormProcesso(){   $("form").reset();   $("#dados_processo").reset();   $("#dados_processo").hide()}

Removendo no BD.

<?phprequire("funcoes.php");if(sql_delete("tab_processo",$_POST["id"])){	echo "4";}else{	echo "1";}?>

 

 

Desculpe, errei no nome do tópico: "Realizar um delete com um JS no bd" []'s Vinícius

 

up

Compartilhar este post


Link para o post
Compartilhar em outros sites

e qual a sua dúvida?

 

vi os códigos, mas qual o erro ? qual o problema ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bem, quero deletar uma linha da minha tabela identificando pelo id.

 

Porém, quando chamo a função do JS acontece um erro: " Parse error: syntax error, unexpected 'confirm_remove_process' (T_STRING), expecting ',' or '; "

 

Queria uma help de como remover essa linha através do 'id' da linha.

 

 

 

[]'s



A forma que to chamando o id por cada linha da tabela, está correta?

echo "<tbody>"; 
	$sql="SELECT * FROM origem ORDER BY id";
	$listagem = mysql_query($sql);
		while($row = mysql_fetch_array($listagem)){
		$num_id = $row['id'];
			echo "<tr><td>" . $row['descricao'] . "</td>"."<td><img src='img/delete.png' id="$num_id" onclick="confirm_remove_process()"> </td>"."<td><img src='img/edit.png'/></td></tr>";
		}	

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

não use atributos de eventos no html, isso é feio, muito feio.

Mas tente assim:

echo "<tr><td>" . $row['descricao'] . "</td>"."<td><img src='img/delete.png' id="$num_id" onclick='confirm_remove_process(".$num_id.")'> </td>"."<td><img src='img/edit.png'/></td></tr>";

 

ai estou passando como argumento da função o ID, pegue ele e use no teu ajax.

Compartilhar este post


Link para o post
Compartilhar em outros sites

sobrou outro erro ali em cima:

 

echo "<tr><td>" . $row['descricao'] . "</td>"."<td><img src='img/delete.png' id='".$num_id."' onclick='confirm_remove_process(".$num_id.")'> </td>"."<td><img src='img/edit.png'/></td></tr>";

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se entendi bem sua necessidade, você precisa apagar um registro utilizando jQuery identificando pelo ID correto?
Não vou tentar entender sua estrutura, mas vou lhe passar como eu fiz quando precisei e você adapta pra você ok?
Vamos lá:

Minha tabela era mais ou menos assim: p_id,produto,preco,marca

então você pode criar um arquivo PHP com a instrução:

// se existir a variável p_id vindo de um formulário que iremos enviar mais tarde por jQuery

if(isset($_POST['p_id'])){

$p_id = $_POST['p_id'];

$apagar = "DELETE FROM `tabela` WHERE(`p_id` = '$p_id')";

if(mysql_query($apagar)){

echo 0;

}

else {

echo 1;

}

}

 

Aí no javascript você pode colocar o seguinte:

 

$(function(){

formulario = $("#formulario")[0];

campo = formulario.campo;

botao = formulario.botao;

$("input[name=botao]).click(function(){

var id = campo.value;

if(id!==""){

$.post('arquivo.php',{p_id: id},function(resultado){

if(resultado=="0"){

alert("Registro excluído")

}

else if(resultado=="1"){

alert("O id não foi encontrado");

}

}

}

}

}

 

Claro que fiz na pressa, mas é só você adaptar colocando o nome dos campos, do seu formulário e tudo mais pra ficar do jeito que você precisa, e pra recuperar o valor você pode utilizar um campo do tipo de texto, ou colocar um link ao lado de cada id e cada link tem um atributo com o id único do registro na tabela e quando a pessoa clicar no link ele faz a requisição pro jQuery. Espero ter ajudado. Qualquer dúvida só falar. flw

Compartilhar este post


Link para o post
Compartilhar em outros sites

Resolvi melhorar, e tô tentando passar via ajax com jquery. Mas tem um porém, meu conhecimento de jquery é quase nenhum.

 

Segue o código em jquery

$('delete_origem').click(function () {    var confirm = window.confirm('Deseja deletar?');    if (confirm) {        var StateID = $(this).parents('tr').attr('id');        $.ajax({            url: 'crud/remover_origem.php'            ,data: {                method:'Delete'                ,'StateID':StateID            }            ,success: function(result){                if (result.MSG == '') {                    $('#' + result.STATEID).remove();                } else {                    $('#msg').text(result.MSG).addClass('err');;                };            }        });    }});

Com esse código, n seria necessário a criação de uma 'function QUALQUER NOME(){ ' logo acima de " $('delete_origem').click(function () { " ?

Uma de muitas dúvidas que tenho, é como vou chamar no onclick sem o nome da função?

 

Aqui, logo abaixo tem o outro código que vai fazer o uso dessa função JS.

<?phpecho '<fieldset class="formulario">';echo '<legend>Editar </legend>';	require('../conn/conn.php');			echo "<table border='0' id='delete_origem' ><thead><th>Descrição</th></thead>";		echo "<tbody>"; 	$sql="SELECT * FROM origem WHERE status != 1";	$listagem = mysql_query($sql);		while($row = mysql_fetch_array($listagem)){		$num_id = $row['id'];			echo "<tr><td>" . $row['descricao'] . "</td>"."<td><img src='img/delete.png'  onclick='tb_origem(".$num_id.");'> </td>"."<td><img src='img/edit.png' id='edicao'/></td></tr>";		}		echo "</tbody></table>";		echo '</fieldset>';	?>

E por fim, o código Mysql que faz o update. Quando o id tiver com o status = '0', estará desativado no 'while' do código acima.

<?phprequire('../conn/conn.php');$num_id = $_GET['id'];$apagar = "UPDATE origem SET id='$num_id'status=0";echo $apagar;	if(mysql_query($apagar)){			echo "ok!";	}else{ 		echo mysql_error();		}	die(); ?>

Pode parecer um pouco complicado a forma que tentei explicar, mas tentei ser o mais claro. Quem puder ajudar, ficarei grato.

 

Att,

 

Vinícius

 

 

up

Compartilhar este post


Link para o post
Compartilhar em outros sites

vixi cara.. vc precisa parar um pouco e estudar..

 

tem erros em vários trechos do seu código.

 

 

$('delete_origem').click(function () {

 

da forma que está, vai procurar uma TAG <delete_origem></delete_origem>, que provavelmente não é oque vc quer.

 

Além disso, tem erro de sintaxe na tua query:

 

$apagar = "UPDATE origem SET id='$num_id'status=0";

provavelmente, vc esqueceu uma virgula ali, antes do status.

 

 

e no teu sucess, vc não tá retornando um json, então não faz sentido vc tentar acessar via objeto.propriedade

 

result.MSG

 

 

Além disso, vc procura um ID na tr:

 

var StateID = $(this).parents('tr').attr('id');

mas a tua TR não tem ID nenhum:

 

<tr>

 

 

sem contar que vc manda um GET com um nome:

 

'StateID':StateID

 

e tenta receber com outro:

 

 

$num_id = $_GET['id'];

 

 

logo, esse código inteiro está errado, com vários erros por diversos lugares diferentes.

 

Vamos parar e começar do zero ?

 

 

Vc precisa excluir uma linha do DB, apartir de uma tabela que foi listada do banco. É isso mesmo ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Já resolvi fera. O que alterei, funcionou.

 

Js + ajax

function confirmDelete(id){
	if (confirm('Deseja realmente deletar?')){
		$.post('crud/remover_origem.php',{id: id},
		function(data) {alert(data);
		});
	 }
}

Php que realiza o update:

<?php
require('../conn/conn.php');

$apagar = "UPDATE origem SET status='0' WHERE id=".$_POST['id'];
if(mysql_query($apagar)){
	echo mysql_query($apagar);
}else{ 
	echo mysql_error();
}
 ?>

 



A página principal:

<?php
echo '<fieldset class="formulario">';
echo '<legend>Editar </legend>';

	require('../conn/conn.php');
	
	
	echo "<table border='0' id='tb_origem' ><thead><th>Descrição</th></thead>";
	
	echo "<tbody>"; 
	$sql="SELECT * FROM origem WHERE status != 1";
	$listagem = mysql_query($sql);
		while($row = mysql_fetch_array($listagem)){
			echo "<tr><td>" . $row['descricao'] . "</td>"."<td><img src='img/delete.png'  onclick='confirmDelete(".$row['id'].");'> </td>"."<td><img src='img/edit.png' id='edicao'/></td></tr>";
		}	
	echo "</tbody></table>";
	
	echo '</fieldset>';
	?>

 

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.