Ir para conteúdo

POWERED BY:

Arquivado

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

eduardolima

array vindo de um formulario

Recommended Posts

Boa tarde a todos,

 

Pessoal estou com um probleminha sou novato em ajax andei pesquisando no google e descobri como atualizar a pagina sem sair dela através de um formulário com o botão submit, o meu problema agora é o seguinte este formulário é montado sobre uma consulta sql, retornado como um array, um dos campos deste array é o id, vamos supor que ele me mostre 5 ids diferentes e eu quero deletar o id da terceira linha(id 3), estou usando o codigo abaixo para efetuar o procedimento, acontece que ele sempre me mostra o id 1(primeira linha) independente de qual id eu escolha

 

<script type="text/javascript">
$(document).ready(function(){
$('#deleta').live('submit', function(){		
	$.get('deleta_dados.php', { del: $('#del').attr('value')}, function(data){
	$('#deletado').html(data);
	});
return false;
});		
});
</script>

Compartilhar este post


Link para o post
Compartilhar em outros sites

isso acontece, pq você não pode duplicar o atritubo ID.

 

para resolver o seu problema, use o método .serialize() do jQuery.

http://api.jquery.com/serialize/

Compartilhar este post


Link para o post
Compartilhar em outros sites

Obrigado Bruno fui olhar a pagina adicionei a linha :

$(document).ready(function(){

  -->>>>>  var form = $("#deleta").serialize();

$('#deleta').live('submit', function(){

	$.get('deleta_dados.php', { del: $('#del').attr('value')}, function(data){

	$('#deletado').html(data);

	});

return false;
});		

});

 

Mas ainda fiquei sem entender como passar id escolhido no formulário, ja que o retorno do serialize é algo parecido com isso:

single=Single&multiple=Multiple&multiple=Multiple3&check=check2

Compartilhar este post


Link para o post
Compartilhar em outros sites

ele vai montar a query string perfeita para você.

 

oq você escolher, ele vai montar automaticamente, então você deixa o trabaho de "saber qual foi escolhido", para o .serialize();

 

entendeu ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

$.get('deleta_dados.php', { form }, function(data){

 

não me lembro se o $.get aceita query string, se não aceitar, use o $.ajax em modo GET.

Afinal o $.get é apenas um atalho.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bruno obrigado novamente

 

cara ele continua passando o valor do primeiro array mesmo com o form dentro {form} como você me informou, cara desculpa abusar

mas to montando assim meu form que faz o submit será que tem algum erro?

 


		foreach( $registrados as $reg) {

		echo"
			<tr>
			<td>$reg->udf_value</td>
         		        <td>$reg->EMPRESA</td>
         		        <td>$reg->startdate</td>
         		        <td>$reg->starttime</td>
         		        <td><input type='submit' id='del' name='del' value='$reg->request_id' /></td>";

		} 

 

também tentei utilizando o $.ajax e retornou o primeiro registro

Compartilhar este post


Link para o post
Compartilhar em outros sites

aperte Ctrl+U

 

e coloque aqui como tá ficando esse html.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Essa é a pagina

<script type="text/javascript" src="jquery-1.6.4.min.js"></script>
<script type="text/javascript">

$(document).ready(function(){

   var form = $("#deleta").serialize();

$('#deleta').live('submit', function(){

 //$.get('deleta_dados.php', { form }, function(data){	
 $.get('deleta_dados.php', { del: $('#del').attr('value')}, function(data){
 $('#deletado').html(data);

 });

 	 return false;
 });		

});
</script>

<?php
/////////  Bootstrap the Joomla Framework ////////////// 

define( '_JEXEC', 1 ); 

define('JPATH_BASE', dirname(__FILE__) ); 

define( 'DS', DIRECTORY_SEPARATOR ); 

require_once ( JPATH_BASE .DS.'includes'.DS.'defines.php' ); 
require_once ( JPATH_BASE .DS.'includes'.DS.'framework.php' ); 

$mainframe =& JFactory::getApplication('site'); 

$mainframe->initialise();  

$database = &JFactory::getDBO(); 



$Id = $_REQUEST["userID"];

$grid_date2 = $_REQUEST['grid_date2'];
$grid_date3 = $_REQUEST['grid_date3'];



if($grid_date2 && $grid_date3){

if($grid_date2 <= $grid_date3){

?>

       <form id="deleta" method="post">
	<table width="750px" style="border:dashed 1px; border-color:#999999; background-color:#FFFFFF; ">
       <tr>
       <td>Funcionário</td>
       <td>Empresa</td>
       <td>Data</td>
       <td>Horário</td>
       <td>Excluir</td>
       </tr>

<?
	$sql = 'SELECT b.udf_value, b.request_id,

	(SELECT a.udf_value
	 FROM #__sv_apptpro2_udfvalues as a
	 WHERE a.udf_id =7 and b.request_id = a.request_id) AS EMPRESA,

	 DATE_FORMAT(#__sv_apptpro2_requests.startdate,"%d/%m/%Y")as startdate, 
	 #__sv_apptpro2_requests.enddate, 
	  DATE_FORMAT(#__sv_apptpro2_requests.starttime,"%H:%i")as starttime, 
	 #__sv_apptpro2_requests.endtime,  
	 #__sv_apptpro2_requests.cancellation_id 

	 FROM #__sv_apptpro2_udfvalues AS b

	 inner join #__sv_apptpro2_requests on #__sv_apptpro2_requests.id_requests = b.request_id
	 WHERE b.udf_id =6 and #__sv_apptpro2_requests.user_id='.$Id;
	 $database->setQuery($sql);
	 $registrados = $database -> loadObjectList();

		foreach( $registrados as $reg) {

		echo"
			<tr>
			<td>$reg->udf_value</td>
         		        <td>$reg->EMPRESA</td>
         		        <td>$reg->startdate</td>
         		        <td>$reg->starttime</td>
         		<td><input type='submit' id='del' name='del' value='$reg->request_id' /></td>";

		} 

	}else{	
	echo'Ocorreu um erro, a data inicial é maior que a data final!';
}

}else{
echo'Ocorreu um erro, por favor verifique os campos de datas estão preenchidos!';
}
?>
      </tr>
</table>

</form>
<div id="deletado"></div>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu pedi o html gerado amigo.. Ctrl+U.. (Exibir > Codigo Fonte)

 

 

mas acho que entendi oq você quer fazer.

Não faz sentido esse monte de submit, ok ?

Se for ter um submit para cada linha, então você deve ter um form para cada linha tb, entendeu ?

 

 

porém, veja esse meu post aqui:

http://wbruno.com.br/blog/2011/03/16/atualizar-sql-atraves-de-acao-em-checkbox/

 

(usei checkbox, mas pode ser um type="button" ali tb)

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.