post('id') ile gelen değer varmı önce onu kontrol et print_r() ile yazdır.
veritabanına kayıt ederkende aşağıdaki gibi yapabilirsin.
$ids = post('id');
$messages = post('mesaj');
foreach($ids AS $key => $id){
$message = $messages[$key];
$insert = $db->prepare();// bu kısmı kendine göre düzenlersin
$insert->execute([
$id,
$message
]);
}
array_filter() fonksiyonu array içerisindeki tüm elemanları isNullOrEmpty() fonksiyonundan geçiriyoruz.
array_filter() fonksiyonundan geçirdikten sonra array içerisinde null veya empty olan değerler kalmıyor.
yani dbden gelen örnek olarak veri bu şekildeyse ['baslik', 'yazar1', null, '2021-05-22 17:19:00'] bunun içerisindeki null olan yerlerikaldırıyor.
Bunun nedeni foreach ile ayni name="id" değerine sahip input yazdırıyorsun.
name="id[]" şeklinde yaparsan.
veriyi çekerkende array olarak alabilirsin.
<input type="hiden" name="id[]" value="<?=$t_row['id']?>"></input>
<input type="text" name="mesaj[]"></input>
print_r($_POST['id']); // name="id[]" olan inputların değerini array olarak verir
print_r($_POST['mesaj']);// name="mesaj[]" olan inputların değerini array olarak verir
Formdan veri alman gerekmiyorsa bu işi php kısmında yapmanı tavsiye ederim.
Ek olarak input'a id vermişsin ama bunlar tekrar ettiği için sorun yaşarsın.
id Unique (Benzersiz) olur.Yani sayfada o idye ait başka eleman olmaması gerekir.
isNullOrEmpty() fonksiyonu duruyor değilmi?
birde fonksiyonun işlemden önce tanımlandığına dikkat et
function isNullOrEmpty($var){
return ($var !== NULL && $var !== "");
}
$array = ['baslik', 'yazar1', null, '2021-05-22 17:19:00'];
$result = array_filter($array, "isNullOrEmpty");
echo implode(',', $result); // baslik,yazar1,2021-05-22 17:19:00
Aşağıdakiler yardımcı olabilir heralde
https://datatables.net/extensions/buttons/examples/html5/pdfMessage.html
https://datatables.net/extensions/buttons/config
https://datatables.net/reference/api/buttons.exportInfo()
Denemedim ama istediğin böyle yapılıyor galiba
$('#myTable').DataTable( {
buttons: [
{
extend: 'copy',
title: 'Burası bir başlıktır'
},
{
extend: 'pdf',
title: 'Burası bir başlıktır'
},
],
} );
Şu cevaba bir bak belki işine yarar
https://prototurk.com/cevap/4628
son cevabı güncelledim ordanki gibi yaparsan büyük ihtimal olacak.
Güncellendi..
<textarea id="text"></textarea>
<pre id="txt"></pre>
<script>
function kes(_str){
const i = _str.indexOf(" | ");
const res = _str.slice(0, i);
return res;
}
function yaz(item) {
document.getElementById("txt").innerHTML += kes(item) + "\n";
}
const textarea = document.getElementById('text');
textarea.addEventListener("keyup", function(){
document.getElementById("txt").innerHTML = '';
const readbyline = this.value.split('\n');
readbyline.forEach(yaz);
});
</script>
<button onclick="parcala()">Parçala</button>
<pre id="txt">
[email protected]:sifre | ad: halil
</pre>
<script>
function parcala() {
const str = "[email protected]:sifre | ad: halil";
const i = str.indexOf(" | "); // indexOf() ile nereden keseceğimizin satırını buluyoruz
const res = str.slice(0, i); // slice() ile kesme işlemini yapıyoruz
document.getElementById("txt").innerHTML = res;
}
</script>