Tüm sayfayı yenilemeden, jquery ajax kullanarak textarea'yı güncelleyebilirsiniz. Index.php'de (buradaki örneğimde) save changes
'u tıklattığınızda, textarea değerini id="demo"
ile alırız ve update.php göndeririz. Update.php'de, mevcut tüm metni temizlemek ve textarea
adresinden aldığımız yeni içeriği fwrite()
kullanarak kullanıyoruz ve index.php
'da yaptığımız gibi yeni metni görüntülüyoruz.
Yani bu index.php
geçerli:
<!DOCTYPE HTML>
<html>
<head>
<title>TextArea Lesson</title>
<style>
div{
margin:0 auto 0;
width:400px;
height:300px;
}
#demo{
margin-left:5px;
width:390px;
height:200px;
}
</style>
</head>
<body>
<div>
<form method="POST">
<fieldset>
<legend>Ajax Update Text Area</legend>
<?php
$myfile = fopen('test.txt', 'r');
echo "<textarea id='demo'>";
// go through each line in the file, print its contents.
while(!feof($myfile)) {
echo fgets($myfile);
}
echo "</textarea><br>";
?>
<input type="submit" id="save" value="Save changes" />
</fieldset>
</form>
</div>
</body>
</html>
<script src="https://code.jquery.com/jquery-1.12.2.min.js"
integrity="sha256-lZFHibXzMHo3GGeehn1hudTAP3Sc0uKXBXAzHX1sjtk="
crossorigin="anonymous"></script>
<script>
//when you click save changes, we get its id="save"
//and prevent default submission
$(document).on("click", "#save", function(e){
e.preventDefault();
//get the textarea data bu its id="demo"
var textdata = $('#demo').val();
mydata= 'testdata='+textdata;
$.ajax({
type:'POST',
data:mydata,
url:'update.php',
success:function(data) {
if(data){
alert('Saved!');
$("#demo").html(data);//load data from update.php
}else{
alert('Update failed');
}
}
});
});
</script>
Update.php
:
<?php
$data_to_write = $_POST['testdata'];
$file_path = 'test.txt';
$file_handle = fopen($file_path, 'w');
fwrite($file_handle, $data_to_write);
fclose($file_handle);
$myfile = fopen('test.txt', 'r');
while(!feof($myfile)) {
echo fgets($myfile);
}
fclose($myfile);
?>
Ve test.txt
:
büyük Hızlı kahverengi siyah tilki tembel köpeğin üstünden atlar.
Umarım bu size yardımcı olabilir. Not: Bu sadece bir çalışma kodu ve sadece öğrenme amaçlıdır. Bu yüzden güvenlik kontrolü ve veri doğrulama sağlanmaz.
Elbette, metin alanının değerini alan ve sunucuya bir ajax isteği gönderen "kaydet" düğmesinin tıklama olayına bir işleyici eklersiniz. Orada, yükü alan ve kaydeden bir "kaydet" senaryosuna (belki php veya herhangi bir dilde) sahipsiniz. – arkascha
@arkascha Tamam, bakacağım ve denemeliyim. Teşekkürler – l00kitsjake