[]
Textarea dışında yazı gönderme yolu var mı?
arkadaşlar, @ ile kullanıcı etiketleme gibi bir sistem hazırladım online derslerden yardım alarak. ancak sorunum şu ki; bu sistem textarea ile çalışmıyor. bunu hazırladığım div'de kullanıncaysa yazıyı gönderemiyorum.
nasıl bir çare bulabilirim acaba? (pek iyi değilim bu işlerde ama öğrenmeye çalışıyorum, o yüzden azıcık açıklayaran söylerseniz yapabileceklerimi çok sevinirim)
nasıl bir çare bulabilirim acaba? (pek iyi değilim bu işlerde ama öğrenmeye çalışıyorum, o yüzden azıcık açıklayaran söylerseniz yapabileceklerimi çok sevinirim)
aslında sen biraz açıklarsan ne istediğini belki daha rahat yardımcı olunabilir.
- ensar (22.01.12 08:29:19)
javascript ile @ ile kullanıcı etiketleme işi yaptım. (hani şu facebook'ta başına @ koyup adını yazmaya başlayınca isimler liste halidne çıkıyor ya o işte)
ancak bu yalnızca tanımladığım divlerin arasında çalışıyor. yani textarea'ya bu div'in class'ını atasam bile @ ile etiketleme çalışmıyor textarea'da.
dolayısıyla div'e yazdırdığım yazıyı mysql'e gönderebilmem lazım, textarea ile çalıştıramadığım için.
ancak bu yalnızca tanımladığım divlerin arasında çalışıyor. yani textarea'ya bu div'in class'ını atasam bile @ ile etiketleme çalışmıyor textarea'da.
dolayısıyla div'e yazdırdığım yazıyı mysql'e gönderebilmem lazım, textarea ile çalıştıramadığım için.
- tchuck (22.01.12 09:16:46)
div de çalışıyor textarea da çalışmıyosa; fonksiyona doğru veri gitmiyo olabilir.
şöyle olsa bir kısmı, div arasındaki veriyi alıyo olsa bir şekilde (eğer input yoksa yani bu iki div arasında @ ve devamını girdiğin yerde)
$('divinidsi').text() ile alıyodur veriyi.
textarea da bu giden veriyi ancak
$('textareaninidsi').val()
ile alabilirsin. ne html ne javascript kodunu göremediğim için tahmin edebiliyorum ancak, onları yazarsan daha rahat bir şey söylenebilir.
şöyle olsa bir kısmı, div arasındaki veriyi alıyo olsa bir şekilde (eğer input yoksa yani bu iki div arasında @ ve devamını girdiğin yerde)
$('divinidsi').text() ile alıyodur veriyi.
textarea da bu giden veriyi ancak
$('textareaninidsi').val()
ile alabilirsin. ne html ne javascript kodunu göremediğim için tahmin edebiliyorum ancak, onları yazarsan daha rahat bir şey söylenebilir.
- ensar (22.01.12 09:28:04)
dosya1: index.php (dosyanın içindeki javascript bölümüne yazdım haliyle bu kodu.
html:
<div id="konu_ekle">
<div class="sol_bas">Konu ekleme</div>
<form action="" method="post">
<span>Konu İçerik:</span>
<span><div id="yaziekrani" contenteditable="True">Bir isim girin</div></span>
<div id="sonuc"></div>
<span><input type="submit" value="Konuyu Ekle" class="giris_btn" style="float:right;"/></span>
</form>
</div>
--------------------------------
---------------------------------------------------------------------
$(document).ready(function(){
/*ÜSTÜNE TIKLAYINCA SİLME*/
$("#yaziekrani").click(function(){
if($(this).html()=="Takım ya da Lig İsmi Yazın"){
$(this).empty();
}
});
/*ÜSTÜNE TIKLAYINCA SİLME*/
/*@'LE ARAMA*/
var kelime = /@(\w+)/ig;
$("#yaziekrani").live("keyup",function(){
var icerik = $(this).html();
var isim = icerik.match(kelime);
var deger = "isim="+isim;
if(isim.length > 0){
$.ajax({
type: "POST",
url: "kontrolet.php",
data: deger,
success: function(e){
if (e == "yok"){
$("#sonuc").fadeOut();
}else {
$("#sonuc").html(e).fadeIn();
}
}
});
}
});
$(".ekle").live("click", function(){
var takimlar = $(this).attr("title");
var icerik = $("#yaziekrani").html();
var a = '<a href="#" contenteditable="false" class="takim">'+takimlar+'</a>';
var deger = icerik.replace(kelime,a);
$("#yaziekrani").html(deger);
$("#sonuc").fadeOut();
});
/*@'LE ARAMA*/
});
-------------------------------------------------------------------
kodun çalışmasını sağlayan kontrolet.php:
--------------------------------------------------------------------
<?php
$con = mysql_connect("localhost","root",);
if (!$con)
{
die('Could not connect: ' . mysql_error());
}
mysql_select_db("mydb", $con);
mysql_query("SET CHARACTER SET Latin5");
header("content-type: text/html; charset=iso-8859-9");
$deger = iconv("UTF-8", "ISO-8859-9", $_POST["isim"]);
$deger = explode("@",$deger);
$kBul = mysql_query("select * from takimlar where takimlar like '$deger[1]%' order by takimlar limit 5");
$kSay = mysql_num_rows($kBul);
if ($kSay > 0){
echo '<ul id="liste">';
while ($kGoster = mysql_fetch_array($kBul)){
echo '<li><a href="javascript:;" title="'.$kGoster["takimlar"].'" class="ekle">'.$kGoster["takimlar"].'</a></li>';
}echo '</ul>';
}else{
echo "yok";
}
?>
--------------------------------------------------------------------
html:
<div id="konu_ekle">
<div class="sol_bas">Konu ekleme</div>
<form action="" method="post">
<span>Konu İçerik:</span>
<span><div id="yaziekrani" contenteditable="True">Bir isim girin</div></span>
<div id="sonuc"></div>
<span><input type="submit" value="Konuyu Ekle" class="giris_btn" style="float:right;"/></span>
</form>
</div>
--------------------------------
---------------------------------------------------------------------
$(document).ready(function(){
/*ÜSTÜNE TIKLAYINCA SİLME*/
$("#yaziekrani").click(function(){
if($(this).html()=="Takım ya da Lig İsmi Yazın"){
$(this).empty();
}
});
/*ÜSTÜNE TIKLAYINCA SİLME*/
/*@'LE ARAMA*/
var kelime = /@(\w+)/ig;
$("#yaziekrani").live("keyup",function(){
var icerik = $(this).html();
var isim = icerik.match(kelime);
var deger = "isim="+isim;
if(isim.length > 0){
$.ajax({
type: "POST",
url: "kontrolet.php",
data: deger,
success: function(e){
if (e == "yok"){
$("#sonuc").fadeOut();
}else {
$("#sonuc").html(e).fadeIn();
}
}
});
}
});
$(".ekle").live("click", function(){
var takimlar = $(this).attr("title");
var icerik = $("#yaziekrani").html();
var a = '<a href="#" contenteditable="false" class="takim">'+takimlar+'</a>';
var deger = icerik.replace(kelime,a);
$("#yaziekrani").html(deger);
$("#sonuc").fadeOut();
});
/*@'LE ARAMA*/
});
-------------------------------------------------------------------
kodun çalışmasını sağlayan kontrolet.php:
--------------------------------------------------------------------
<?php
$con = mysql_connect("localhost","root",);
if (!$con)
{
die('Could not connect: ' . mysql_error());
}
mysql_select_db("mydb", $con);
mysql_query("SET CHARACTER SET Latin5");
header("content-type: text/html; charset=iso-8859-9");
$deger = iconv("UTF-8", "ISO-8859-9", $_POST["isim"]);
$deger = explode("@",$deger);
$kBul = mysql_query("select * from takimlar where takimlar like '$deger[1]%' order by takimlar limit 5");
$kSay = mysql_num_rows($kBul);
if ($kSay > 0){
echo '<ul id="liste">';
while ($kGoster = mysql_fetch_array($kBul)){
echo '<li><a href="javascript:;" title="'.$kGoster["takimlar"].'" class="ekle">'.$kGoster["takimlar"].'</a></li>';
}echo '</ul>';
}else{
echo "yok";
}
?>
--------------------------------------------------------------------
- tchuck (22.01.12 09:33:13 ~ 09:33:55)
/*@'LE ARAMA*/
var kelime = /@(\w+)/ig;
$("#yaziekrani").live("keyup",function(){
var icerik = $(this).html();
var isim = icerik.match(kelime);
var deger = "isim="+isim;
kısmını değiştirmen gerek
<span><div id="yaziekrani" contenteditable="True">Bir isim girin</div></span>
yerine mesela:
<textarea id="yaziekrani">Bir isim girin</textarea>
yazsak, kodu şu şekilde değiştirmemiz lazım:
/*@'LE ARAMA*/
var kelime = /@(\w+)/ig;
$("#yaziekrani").live("keyup",function(){
var icerik = $(this).val(); // $(this).html(); yerine bu düzeltilecek
var isim = icerik.match(kelime);
var deger = "isim="+isim;
var kelime = /@(\w+)/ig;
$("#yaziekrani").live("keyup",function(){
var icerik = $(this).html();
var isim = icerik.match(kelime);
var deger = "isim="+isim;
kısmını değiştirmen gerek
<span><div id="yaziekrani" contenteditable="True">Bir isim girin</div></span>
yerine mesela:
<textarea id="yaziekrani">Bir isim girin</textarea>
yazsak, kodu şu şekilde değiştirmemiz lazım:
/*@'LE ARAMA*/
var kelime = /@(\w+)/ig;
$("#yaziekrani").live("keyup",function(){
var icerik = $(this).val(); // $(this).html(); yerine bu düzeltilecek
var isim = icerik.match(kelime);
var deger = "isim="+isim;
- ensar (22.01.12 09:42:27)
@'le aramanın son bölümündeki
var icerik = $("#yaziekrani").html();
ve
$("#yaziekrani").html(deger);
satırlarındaki html'leri de val ile değiştirdim. bu şekilde değiştirince, aşağıdaki listeden istediğim ismi seçtiğimde ekranıma " <a href="#" contenteditable="false" class="takim">Macclesfield</a>" olarak yazdırıyor direk. sadece Macclesfield'ı ekrana getirtip yönlendirme nasıl yapabilirim ki?
val'ler html halindeyken dediğim şekilde oluyor. (javascriptte de hakikaten baya kötüyüm, yine php'de falan biraz yol katettim ama...)
var icerik = $("#yaziekrani").html();
ve
$("#yaziekrani").html(deger);
satırlarındaki html'leri de val ile değiştirdim. bu şekilde değiştirince, aşağıdaki listeden istediğim ismi seçtiğimde ekranıma " <a href="#" contenteditable="false" class="takim">Macclesfield</a>" olarak yazdırıyor direk. sadece Macclesfield'ı ekrana getirtip yönlendirme nasıl yapabilirim ki?
val'ler html halindeyken dediğim şekilde oluyor. (javascriptte de hakikaten baya kötüyüm, yine php'de falan biraz yol katettim ama...)
- tchuck (22.01.12 10:20:31)
$(".ekle").live("click", function(){
var takimlar = $(this).attr("title");
var icerik = $("#yaziekrani").html();
var a = '<a href="#" contenteditable="false" class="takim">'+takimlar+'</a>';
var deger = icerik.replace(kelime,a);
$("#yaziekrani").html(deger);
$("#sonuc").fadeOut();
satırlarında
var a = '<a href="#" contenteditable="false" class="takim">'+takimlar+'</a>';
satırını
var a = takimlar;
olarak değiştirmen lazım gibi.
var takimlar = $(this).attr("title");
var icerik = $("#yaziekrani").html();
var a = '<a href="#" contenteditable="false" class="takim">'+takimlar+'</a>';
var deger = icerik.replace(kelime,a);
$("#yaziekrani").html(deger);
$("#sonuc").fadeOut();
satırlarında
var a = '<a href="#" contenteditable="false" class="takim">'+takimlar+'</a>';
satırını
var a = takimlar;
olarak değiştirmen lazım gibi.
- ensar (22.01.12 10:31:32)
hımmm anladım. yav başına da ekşimiş oldum gerçi ama, <a href'li bir şekilde koyma ihtimalimiz yok mudur ki. isim kısmına yönlendirme linki koyabiliyor olsam süper olurdu.
(bu arada oturmuş yerimde senden cevap bekliyorum sanma :) sürekli araştırıyorum, tutorialleri falan izliyorum, yapamadıklarımı sormak zorunda kalıyorum. pek iyi değilim bu konuda ama öğreniyorum bir şeyler :) )
(bu arada oturmuş yerimde senden cevap bekliyorum sanma :) sürekli araştırıyorum, tutorialleri falan izliyorum, yapamadıklarımı sormak zorunda kalıyorum. pek iyi değilim bu konuda ama öğreniyorum bir şeyler :) )
- tchuck (22.01.12 10:36:42)
textarea içerisinde html tag i kullanmak çok uzun iş, textarea ya yerleştirmek yerine ama çıkan listede bir öğeye tıklandığında yönlendirme yapabilirsin:
$(".ekle").live("click", function(){
var takimlar = $(this).attr("title");
top.top.location.href='takimsayfasi.php?takim='+takimlar;
$("#sonuc").fadeOut();
});
gibi bir kodla.
$(".ekle").live("click", function(){
var takimlar = $(this).attr("title");
top.top.location.href='takimsayfasi.php?takim='+takimlar;
$("#sonuc").fadeOut();
});
gibi bir kodla.
- ensar (22.01.12 10:48:22)
1