v2.5.2
Giriş yap

Birden Çok data ARRAY içinde alınabilir mi ? [ÇÖZÜLDÜ]

aydinkeskin
673 defa görüntülendi

sweet alert ile silme işlemi ypaıyorum.

data-id="id" den gelen id yi bu şekilde alıyorum.

var id = $(this).data('id');

	data: 'HepsiCopeAt='+id,
	
	
	şeklinde alıyorum. sorun yok silme sorunsuz.
	
	
	fakat

benim yapmak istediğim

o ID ye ait bütün kolonu başka bir tabloya ekletmek

tabloya felan php ile eklerimde

burda o id ye ait diğer kolonların verilerini nasıl çekicem.

tablo mesaj
id----ad----mesaj
1----melike----selam dünya

bunu alıp

tablo sakla
id----ad----mesaj

a aktarmak istiyorum ama dediğim gibi post işleminde

data: 'HepsiCopeAt='+id, buraya nasıl çekeceğim onları.

hepsine tek tek attr eklemek gerekiyor atıyorum

var ad = $(this).data('ad');
var mesaj = $(this).data('mesaj');

<a data-ad="ad" data-mesaj="mesaj"


bunun daha kısa bir yöntemi varmıdır acaba
Cevap yaz
Cevaplar (7)
ynswtf
1479 gün önce

Helal olsun pek bir şey yapmadım :D Halletmene sevindim.

aydinkeskin
1479 gün önce

komik birşey söylim mi :)))

hallettim
yaptığım hata ben gidip görüntüle tagına verileri koymuşum
çöpe at butonuna neden veri gelmiyor diye isyan ediyorum :)))

kardeş çok teşekkür ederim ilgin için senide yordum o kadar hakkını helal et.

aydinkeskin
1479 gün önce

evet tabloarım aynı o şekilde
bende datatables içerisn json olarak verileri çekiyorum
bu verileri sweetalert ile taşımaya diğer tabloya taşımaya çalışıyorum ve çekilen tablodakini siliyorum.
sorunsuz çalışıyor zaten çalışmayan
id den başka hiç bir verinin çekmemesi

	var id = $(this).data('id');
	var ip = $(this).data('ip');
	
	burda sadece id yi çekiyor
	ip yi çekmiyor gibi
	kodlarda ters slaç var gözükmüyor burda.
ynswtf
1479 gün önce

Bir saniye burda mantık hatası var gibi. Ben sizin o kodları okursam ölür giderim :D Ama benim soruma cevap verirseniz daha basit şekilde bu hata düzeltilebilir.

Sizin 2 tane tablonuz var değilmi?

haberler_tablosu
    id
    haber_basligi
    haber_icerigi
    
cop_kutusu_haber
    id
    haber_basligi
    haber_icerigi
    

Eğer buna benziyor ise sizin bu kadar strese girmenizin gereği yok ki. haberler_tablosuna status adında bir sütun atayın integer olan, 0 değeri olan çöp kutusu, 1 olan taslak, 2 yayında olanlar.

Eğer amacınız buysa, böyle bir strese gerek yok bence. Eğer yok abi benim bildiğim bana yeter dersen :d Ben bu kodu okursam ölürüm kusura bakmayın :d

aydinkeskin
1479 gün önce

js denen olaydan oldum olası illet ediyorum sevmiyorum yinede bulaşmak zorunda kalıyorum malesef vue ile alakam yoktur inanıyorum ki dediğin gibi çok kolaydır.
söyle payalaşayım kodları kardeşim

burdan sweetalert ile işlem yaptırdığım kodlar.

$(document).ready(function(){

$(document).on('click', '#HepsiCopeAt', function(e){
		e.preventDefault();
	var id = $(this).data('id');
	var ip = $(this).data('ip');
	var baslik = $(this).data('baslik');
	var adsoyad = $(this).data('adsoyad');
	var email = $(this).data('email');
	var telefon = $(this).data('telefon');
	var fax = $(this).data('fax');
	var gsm = $(this).data('gsm');
	var adres = $(this).data('adres');
	var weburl = $(this).data('weburl');
	var icerik = $(this).data('icerik');
	var durum = $(this).data('durum');
	var puan = $(this).data('puan');
	var urun_id = $(this).data('urun_id');
	var blog_id = $(this).data('blog_id');
	var haber_id = $(this).data('haber_id');
	var proje_id = $(this).data('proje_id');
	var galeri_id = $(this).data('galeri_id');
	var sehir = $(this).data('sehir');
	var firma = $(this).data('firma');
	var nerden = $(this).data('nerdenp');
	var create_at = $(this).data('create_at');
	var veriler = 'HepsiCopeAt='+id+'&ip='+ip+'&baslik='+baslik+'&adsoyad='+adsoyad+'&email='+email+'&fax='+fax+'&telefon='+telefon+'&gsm='+gsm+'&adres='+adres+'&weburl='+weburl+'&icerik='+icerik+'&durum='+durum+'&puan='+puan+'&urun_id='+urun_id+'&blog_id='+blog_id+'&haber_id='+haber_id+'&proje_id='+proje_id+'&galeri_id='+galeri_id+'&sehir='+sehir+'&firma='+firma+'&nerden='+nerden+'&create_at='+create_at;
				  
				confirm(id);
				confirm(ip);
				exit();					
				  

swal({

	  	title: 'Eminmisiniz ?',
	  	text: "Çöpe attığınız içeriği daha sonra geri alabilirsiniz.",
	  	type: 'warning',
	  	showCancelButton: true,
	  	confirmButtonColor: '#3085d6',
	  	cancelButtonColor: '#d33',
	  	confirmButtonText: 'Evet',
		cancelButtonText: "Hayır",
	}).then((result) => {
	  	if (result.value){
	  		$.ajax({
		   		url: 'http://xxx.com/xxx/xxxx/xxx.php',
		    	type: 'POST',
		       	data: veriler,
		       	dataType: 'json'
		    }) 
		    .done(function(response){
		     	swal('Başarılı!', response.message, response.status).then(function(result){location.reload();});
			})
		    .fail(function(){
		     	swal('Oops...', 'Ajax İşlemi sırasında bir HATA oluştu !', 'error');
		    });
	  	}
	}) 
});

});

buda datable içinde kullandığım kodlar

			{
				targets: -1,
				title: 'İşlemler',
				render: function(data, type, row) {
					var html = '';
						$.each(row.action, function(key, action){
							if(action.tag == "a" && action.nerden == "SITE->Formu"){

html += '<'+action.tag+'
data-ip="'+action.ip+'"
data-baslik="'+action.baslik+'"
data-adsoyad="'+action.adsoyad+'"
data-email="'+action.email+'"
data-telefon="'+action.telefon+'"
data-fax="'+action.fax+'"
data-cep="'+action.gsm+'"
data-adres="'+action.adres+'"
data-weburl="'+action.weburl+'"
data-icerik="'+action.icerik+'"
data-create_at="'+action.create_at+'"
data-durum="'+action.durum+'"
data-puan="'+action.puan+'"
data-urun_id="'+action.urun_id+'"
data-blog_id="'+action.blog_id+'"
data-haber_id="'+action.haber_id+'"
data-proje_id="'+action.proje_id+'"
data-galeri_id="'+action.galeri_id+'"
data-weburl="'+action.weburl+'"
data-sehir="'+action.sehir+'"
data-firma="'+action.firma+'"
data-nerdenp="'+action.nerdenp+'"
data-target="#mesaj-'+action.dataid+'"
data-id="'+action.dataid+'"
data-role="guncelle"
data-toggle="modal"
class="'+action.class+'"
"title="'+action.title+'"><i class="'+action.icon+'"></i></'+action.tag+'>
<div class="modal fade" id="mesaj-'+action.dataid+'" tabindex="-1" role="dialog" aria-labelledby="ModalLabel" aria-hidden="true" data-backdrop="static" data-keyboard="false">

<div class="modal-dialog modal-lg" role="document">
	<div class="modal-content">
		<div class="modal-header p-2 pl-2">
			<h5 class="modal-title" id="ModalLabel">'+action.nerden+'</h5>
			<button type="button" class="close" data-dismiss="modal" aria-label="Close">
				<span aria-hidden="true">×</span>
			</button>
		</div>
		<div class="modal-body text-left">
			<p class="mb-3">
				IP Adresi: <strong>'+action.ip+'</strong> &nbsp; Tarih: <strong>'+action.tarih+'</strong>
			</p>
			<p><b>Adı Soyadı : </b>'+action.adi	+'</p>
			<p><b>Konu : </b>'+action.konu+'</p>
			<p><b>E-Mail : </b>'+action.email+'</p>
			<p><b>Mesaj : </b>'+action.mesaj+'</p>
		</div>
		<div class="modal-footer">
			<a href="'+action.gonderurl+'Mesajlar/Mesaj-Gonder/'+action.dataid+'/" class="btn btn-label-danger">Cevap Gönder</a>
			<button type="button" class="btn btn-label-info" onclick="reload()">Kapat</button>
		</div>
	</div>
</div>

</div> ';

							}else if(action.class == "btn btn-outline-dark btn-icon"){
								html += '<'+action.tag+' "type="submit" class="'+action.class+'" id="'+action.id+'" data-toggle="kt-tooltip" title="Çöpe at" data-id="'+action.dataid+'" "title="'+action.title+'"><i class="'+action.icon+'"></i></'+action.tag+'> ';
							}else if(action.class == "btn btn-outline-danger btn-icon"){	
								html += '<'+action.tag+' "type="submit" class="'+action.class+'" id="'+action.id+'" data-toggle="kt-tooltip" title="Sil" data-id="'+action.dataid+'" "title="'+action.title+'"><i class="'+action.icon+'"></i></'+action.tag+'> ';
					
							}	
						})
						return html;
				},
			},

ve son olarakda php tarafındaki kodlar.

if(isset($_POST["HepsiCopeAt"]) && $_SESSION['xxx']=="true"){
xxx();

$response = array();

$id = $_POST['HepsiCopeAt']; $ip = $_POST['ip'];	$baslik = $_POST['baslik'];
$adsoyad = $_POST['adsoyad']; $email = $_POST['email'];	$telefon = $_POST['telefon'];
$fax = $_POST['fax']; $gsm = $_POST['gsm'];	$adres = $_POST['adres'];
$weburl = $_POST['weburl'];	$icerik = $_POST['icerik'];	$tarih = $_POST['create_at'];
$durum = $_POST['durum']; $puan = $_POST['puan'];	$urun_id = $_POST['urun_id'];
$blog_id = $_POST['blog_id']; $haber_id = $_POST['haber_id']; $proje_id = $_POST['proje_id'];
$galeri_id = $_POST['galeri_id']; $sehir = $_POST['sehir'];	$firma = $_POST['firma'];
$nerden = $_POST['nerden'];
echo $id;
echo $adsoyad;
exit;
$kontrol = pre("SELECT * FROM m_cop_kutu WHERE id=:id");
$kontrol->execute(array(":id" => $id));
if($kontrol->rowCount()){
	$response['status']  = 'error';
	$response['message'] = 'Mesajınız Taşınamadı Aynı ID ye Sahip Başka Bir Mesaj Bulunmaktadır.';
}else{
	$aktar = pre("INSERT INTO m_cop_kutu SET 
				id=:id,ip=:ip,baslik=:baslik,adsoyad=:adsoyad,email=:email,
				telefon=:telefon,fax=:fax,gsm=:gsm,adres=:adres,weburl=:weburl,
				icerik=:icerik,create_at=:create_at,durum=:durum,puan=:puan,urun_id=:urun_id,
				blog_id=:blog_id,haber_id=:haber_id,proje_id=:proje_id,galeri_id=:galeri_id,
				sehir=:sehir,firma=:firma,nerden=:nerden");
	$aktarildi = $aktar->execute(array(
			":id"=>$id,":ip"=>$ip,":baslik"=>$baslik,":adsoyad"=>$adsoyad,":email"=>$email,
			":telefon"=>$telefon,":fax"=>$fax,":gsm"=>$gsm,":adres"=>$adres,":weburl"=>$weburl,
			":icerik"=>$icerik,":create_at"=>$tarih,":durum"=>$durum,":puan"=>$puan,":urun_id"=>$urun_id,
			":blog_id"=>$blog_id,":haber_id"=>$haber_id,":proje_id"=>$proje_id,
			":galeri_id"=>$galeri_id,":sehir"=>$sehir,":firma"=>$firma,":nerden"=>$nerden));
		if($aktarildi){
			$sonuc = $db->prepare("DELETE FROM mesaj where id=:temizle");
			$ok = $sonuc->execute(array(":temizle"=>$id));
			$say = $ok->rowCount();
			if($ok->rowCount()){
				$response['status']  = 'success';
				$response['message'] = $say.'Adet Mesaj Çöp Kutusuna Gönderildi.';
			}else{
				$response['status']  = 'error';
				$response['message'] = $say.' Adet Mesaj Çöp Kutusuna Gönderilemedi';
			}
		}else{
			$response['status']  = 'info';
			$response['message'] = 'İşlem Yapılamadı.';
		}
	}
	echo json_encode($response);
}

işin anlamadığım tarafı buraya sadece data-id tagından id geiiyor diğerlerinin hepsi underfield olarak kayıt oluyor kayıtları çekmiyor

json tarafınıda söyle paylaşayım.

		"action"		=>	[
			[
				'title'		=>	'Düzenle',
				'tag'		=>	'a',
				'href'		=>	$xxx.'xxx/xxx-xxx/'.seo($row['adsoyad']).'/'.$row['id'].'/',
				'class' 	=>	'btn btn-outline-brand btn-icon',
				'dataid'	=>	$row["id"],
				'icon'		=>	'fa fa-eye',
				"nerden"	=>	$row["nerden"].'->Formu',
				"ip"		=>	$row["ip"],
				"baslik"	=>	$row["baslik"],
				"adsoyad"	=>	$row["adsoyad"],
				"email"	=>	$row["email"],
				"telefon"	=>	$row["telefon"],
				"fax"	=>	$row["fax"],
				"gsm"	=>	$row["gsm"],
				"adres"	=>	$row["adres"],
				"weburl"	=>	$row["weburl"],
				"icerik"	=>	$row["icerik"],
				"tarih"		=>	turkcetarih('j F Y l H:i:s',$row["create_at"]),
				"create_at"		=>	$row["create_at"],
				"durum"		=>	$row["durum"],
				"puan"		=>	$row["puan"],
				"urun_id"		=>	$row["urun_id"],
				"blog_id"		=>	$row["blog_id"],
				"haber_id"		=>	$row["haber_id"],
				"proje_id"		=>	$row["proje_id"],
				"galeri_id"		=>	$row["galeri_id"],
				"weburl"		=>	$row["weburl"],
				"sehir"		=>	$row["sehir"],
				"firma"		=>	$row["firma"],
				"nerdenp"		=>	$row["nerden"],
				"gonderurl" =>	SiteDizin().'xxx/xxx/'
			],
			
			verilerin hepsi çekiyor incele kısmından görüyorum hatta modal a bile yazdırıyorum denemek amaçlı hiç bir sıkıntı yok.
			ama iş işlem yapmaya gelince işlemide yapıyor ama boş kayıt gönderiyor 
			undefined olarak sadece id yi çekiyor id yi taşıyor diğerlerini hiç bir şekilde taşımıyor.
ynswtf
1479 gün önce

Jquery ile bunu yapmak şahsen intihar etmeye eş değer. Sana lazım olan Vuejs,Angular yada React. Ben Vue kullanıyorum ve senin yaptığın işlemlere benzer sistem çok fazla iş yapıyor.

Php Controller'dan gelen array dizinini ilk etapda json formatına çeviriyorum.

<script>
    var $data = {users:{1:{isim:'prototürk',id:1,status:2} , 2:{isim:'yunus',id:2,status:2}}}
</script>

Bu veriyi daha sonra Vuejs'e aktarıyorum.

module.exports = {
    el: '#app',
    data:{
        return {
            users:window.$data.users
        }
    }
}

Bundan sonraki tüm işlemlerimde çok rahat bir şekilde işlem yapabiliyorum. Mesela sen id'si 1 olan veriyi silmek istiyorsun ama o verileri başka bir değerde tutmak istiyorsun diğelim.

Vue component düşünün

<template>
    <div>
        <table>
            <tr v-for="(user , index) in user" :key="index">
                <td>{{user.isim}}</td>
                <td>{{user.status}}</td>
                <td>{{user.id}}</td>
                <td><button @click.prevent="removeData(index , user)">Bu Kullanıcıyı Sil</button></td>
            </tr>
        </table>
    </div>
</template>

<script>
    module.exports = {
        el: '#app',
        data:{
            return {
                users:window.$data.users,
                silinmisVeriler: false
            }
        },
        
        methods:{
            removeData(id , data){
                this.users.splice(id , 0)
                this.silinmisVeriler = data
            }
        }
    }
</script>

Sizin şuanda istediğiniz bir yanıt olmayabilir fakat yapmak istediğiniz şey jquery ile oldukça zahmetli gözüküyor. Ancak aşağıdaki gibi alabilirsiniz bana göre

html tarafı

<table>
  <tr class="suidlidata">
    <td class="id">Yunus SENEM</td>
    <td class="status">Aktif</td>
    <td class="id">1</td>
  </tr>
</table>

js tarafı

var tablo = $('.suidlidata');

var alinacakveriler = ['.status' , '.name' , '.id'];
var alinmisveriler = [];

for (var key in alinacakveriler){
	var childKey = alinacakveriler[key];
	
	// aldığın verileride bu şekilde ekleyebilirsin istediğiniz dizine
    alinmisveriler[key] = tablo.children(childkey).val()
}