Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [JavaScript][PHP]Zapisanie do pliku przez funkcje js zamiast przez php
Forum PHP.pl > Forum > Przedszkole
charles110
Napisalem sobie funkcje zapisu do pliku txt w php. Teraz chce ja przerobić na funkcje js. Poniewaz dopiero ucze sie js prosze o pomoc.

  1. <?php
  2. function zapis(){
  3. $d = "" ." Witam :\r\n";
  4. $file = "test.txt";
  5. $fp = fopen($file, "a");
  6. flock($fp, 2);
  7. fwrite($fp, $d);
  8. flock($fp, 3);
  9. fclose($fp);
  10. }
  11. zapis();
  12. ?>
nospor
W js nie zapiszesz nic do pliku. js nie ma dostępu do plików
charles110
W takim razie jak wywolać tą funkcje za pomocą zdarzenia ondblclick?
nospor
Poczytaj o AJAX
charles110
Ok troche poczytalem, wywoluje mi tą funkcje jednak nadal nie wiem jak zdrobic zeby to sie dzialo na ondblclick. Moj kod:
index.html
  1. <!DOCTYPE html>
  2. <style>p { color:blue; }</style>
  3. <script src="http://code.jquery.com/jquery-latest.js"></script>
  4. $(document).ready(function () {
  5. $("p").text("Dziala \n");
  6. $('#lacz').load('plik.php');
  7. });
  8. </script>
  9.  
  10. </head>
  11. <div id="lacz"></div>
  12. <p>cos</p>
  13. </body>
  14. </html>


plik.php
  1. <?php
  2. function zapis(){
  3. $d = "" ." Witam :\r\n";
  4. $file = "test.txt";
  5. $fp = fopen($file, "a");
  6. flock($fp, 2);
  7. fwrite($fp, $d);
  8. flock($fp, 3);
  9. fclose($fp);
  10. }
  11. zapis();
  12. ?>
nospor
No to zamiast w $(document).ready(function ()
daj to w zdarzeniu ondblclick.
charles110
Tylko jak daje w ten sposob to nie dziala.
  1. <?php
  2. echo "<div align=\"center\" ondblclick=\"$('#lacz').load('plik.php');\">
  3. ?>

nospor
a jak dasz tak:
ondblclick=\"alert('Widzisz mnie?')\"
to pojawia ci się okienko z tekstem?

poza tym, dolar też musisz poprzedzić \ czyli nie: $ a \$
charles110
Jak daje tak:
ondblclick=\"alert('Widzisz mnie?')\"

To wyswietla mi komunikat
nospor
Poprawiłes
Cytat
poza tym, dolar też musisz poprzedzić \ czyli nie: $ a \$

?
charles110
Tak poprawilem i nadal nie dziala

  1. <?php
  2. echo "<div align=\"center\" ondblclick=\"\$('#lacz').load('plik.php');\">
  3. ?>
nospor
Masz to gdzieś wystawione?
charles110
Nie mam tego nigdzie wstawionego ale podalem cale kody.

A nie da sie tego opakowac w funkcje albo inaczej wywolac?Kombinuje w ten sposob ale nie daje rezultatów.

  1. funkcja a(){
  2. $(document).ready(function () {
  3. $("p").text("Dziala \n");
  4. $('#lacz').load('plik.php');
  5. });}


  1. <?php
  2. echo "<div align=\"center\" ondblclick=\"a();\">
  3. ?>
nospor
Czemu w funkcji dajesz jeszcze:
$(document).ready(function () {
?
No nie używaj rzeczy, których nie rozumiesz. Nie wiesz co to robi to wpierw sprawdź a nie strzelasz na chybil trafił.
charles110
Bo juz mi brakuje pomyslow dlaczego nie dziala.
tomm
  1. <script>
  2. $(document).ready(function () {
  3. $("p").text("Dziala \n");
  4. $('#jakisbutton').bind('dblclick', function(){
  5. $('#lacz').load('plik.php');
  6. });
  7. });
  8. </script>
charles110
A jak potem wywolac w php??

tomm
zmieniłbym jedynie

  1. $('#lacz').load('plik.php');


na

  1. $.get('plik.php', function(){
  2. alert('zapisano');
  3. });


plik php bez zmian
charles110
Czyli calosc ma wygladac tak?
  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <script src="http://code.jquery.com/jquery-latest.js"></script>
  5. $(document).ready(function () {
  6. $("p").text("Dziala \n");
  7. $('#jakisbutton').bind('dblclick', function(){
  8. $.get('plik.php', function(){
  9. alert('zapisano');
  10. });
  11. });
  12. });
  13. </script>
  14.  
  15. </head>
  16. <body>
  17. <?php
  18. echo "<button ondblclick=\"\$.get('plik.php', function(){
  19. alert('zapisano');
  20. });\">Wywolaj</button>";
  21. ?>
  22. </body>
  23. </html>


Bo chyba sie pogubilem w logice jak to potem php ma wywolac.
tomm
nie!! po co ta php-owa wstawka?

  1. <?php
  2. echo "<button ondblclick=\"\$.get('plik.php', function(){
  3. alert('zapisano');
  4. });\">Wywolaj</button>";
  5. ?>
  6. </body>


zrób tak

  1. <button id="jakisbutton"> Kliknij </button>
  2. </body>
charles110
Tylko problem w tym ze ja u siebie musze wywolac przez echo i wlasnie nie wiem jak to zrobic...
tomm
  1. echo '<button id="jakisbutton"> Kliknij </button>';
charles110
Dodałem jeszcze dodatkowo <div> i zmienilem znaczniki ale nadal nie dziala.

  1. $(document).ready(function () {
  2. //$("p").text("Dziala \n");
  3. $('#jakisbutton').bind('dblclick', function(){
  4. $.get('plik.php', function(){
  5. alert('zapisano');
  6. });
  7. });
  8. });
  9. </script>


  1. <?php
  2. echo "<div><button id=\"jakisbutton\">Kliknij</button></div>";
  3. // czy da sie zrobic w ten sposob ondblclick=\" \" tylko co tutaj wywolac?
  4. //echo "<div><button id=\"jakisbutton\" ondblclick=\" \">Kliknij</button></div>";
  5.  
  6. ?>
tomm
masz tutaj pełny kod , który działa:
  1. <head>
  2. <script src="jquery/jquery-1.6.4.min.js"></script>
  3.  
  4. <script type="text/javascript">
  5. $(document).ready(function(){
  6. $('#jakisbutton').bind('dblclick', function(){
  7. $.get('plik.php', function(data){
  8. alert('zapisano '+data);
  9. });
  10. });
  11. });
  12. </script>
  13.  
  14. </head>
  15. <body>
  16. <?php
  17. echo '<div><button id="jakisbutton">Kliknij</button></div>';
  18. ?>
  19. </body>


i plik zapisujący do txt
  1. <?php
  2.  
  3. function zapis(){
  4. $d = ' Witam : '.PHP_EOL;
  5. $file = "test.txt";
  6. $fp = fopen($file, "a");
  7. flock($fp, 2);
  8. fwrite($fp, $d);
  9. flock($fp, 3);
  10. fclose($fp);
  11. }
  12. zapis();
  13.  
  14. echo 'przykladowe dane wracajace z pliku php';
  15. ?>

charles110
Dziwne ale skopiowalem caly kod obydwa pliki i nie dziala.
Podczas wywolania pojawia sie przycisk i to za nim. A gdy klikam na przycisk to nic sie nie dzieje.
Kod
'; ?>

tomm
wklej tutaj cały swój kod, mozesz pokazać też źródło strony
charles110
Kod:

plik.php
  1. <?php
  2.  
  3. function zapis(){
  4. $d = ' Witam : '.PHP_EOL;
  5. $file = "test.txt";
  6. $fp = fopen($file, "a");
  7. flock($fp, 2);
  8. fwrite($fp, $d);
  9. flock($fp, 3);
  10. fclose($fp);
  11. }
  12. zapis();
  13.  
  14. echo 'przykladowe dane wracajace z pliku php';
  15. ?>

plik.html
  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <script src="jquery/jquery-1.6.4.min.js"></script>
  5.  
  6. <script type="text/javascript">
  7. $(document).ready(function(){
  8. $('#jakisbutton').bind('dblclick', function(){
  9. $.get('plik.php', function(data){
  10. alert('zapisano '+data);
  11. });
  12. });
  13. });
  14. </script>
  15.  
  16. </head>
  17. <body>
  18. <?php
  19. echo '<div><button id="jakisbutton">Kliknij</button></div>';
  20. ?>
  21. </body>
  22. </html>
nospor
Myśl troszkę a nie kopiujesz bezmyslnie.
Skoro u ciebie to jest w pliku html to nie:
<?php
echo '<div><button id="jakisbutton">Kliknij</button></div>';
?>
a: <div><button id="jakisbutton">Kliknij</button></div>
tomm
gdzies wcześniej napisał że musi to być za pomocą "echo", ale rzeczywiście to bezmyslne kopiowanie.

Jeśli chcesz aby echo było przetworzone to plik musi mieć rozszerzenie *.php
charles110
Ok zmienilem na php i nadal nie dziala

  1. <?php
  2. {
  3. ?>
  4.  
  5. <script src="jquery/jquery-1.6.4.min.js"></script>
  6.  
  7. <script type="text/javascript">
  8. $(document).ready(function(){
  9. $('#jakisbutton').bind('dblclick', function(){
  10. $.get('plik.php', function(data){
  11. alert('zapisano '+data);
  12. });
  13. });
  14. });
  15. </script>
  16.  
  17. <?php
  18. echo '<div><button id="jakisbutton">Kliknij</button></div>';
  19. }
  20. ?>
  21.  
  22.  
tomm
twardy jesteś smile.gif

po co te klamry?

chodzilo byś w nazwie pliku zmienił rozszerzenie z *.html na *.php
charles110
Wg togo co piszecie i nadal nie dziala.
plik.php
  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <script src="jquery/jquery-1.6.4.min.js"></script>
  5.  
  6. <script type="text/javascript">
  7. $(document).ready(function(){
  8. $('#jakisbutton').bind('dblclick', function(){
  9. $.get('plik.php', function(data){
  10. alert('zapisano '+data);
  11. });
  12. });
  13. });
  14. </script>
  15.  
  16. </head>
  17. <body>
  18. <?php
  19. echo '<div><button id="jakisbutton">Kliknij</button></div>';
  20. ?>
  21. </body>
  22. </html>


Nawet gdy zmienie rozszerzenie na *html i zamienie echo
  1. <button id="jakisbutton">Kliknij</button>

to nie dziala
tomm
kolego a cz Ty masz jquery w wersji 1.6.4.min ?

zmien tą linijkę
  1. <script src="jquery/jquery-1.6.4.min.js"></script>


na właściwą sobie
charles110
Dzieki toom za cenna wskazówke, w koncu dziala. Gafa na maksa no ale coz, ucze sie dopiero.
Jeszcze jedna rzecz mi nie dziala tzn mam funkcje ktora wykonuje sie momencie dwukrotnego kliknięcia. A co w momencie gdy mam juz inny id przypisane do tego div-a?

Zgodnie z moim tokiem myslenia podmienilem w jquery na class ale nadal nie dziala. Docelowo tak pisalem wczesniej chce zeby na ten ondblclick ktory jest w echo wywolac skrypt php

  1. <script type="text/javascript">
  2. $(document).ready(function(){
  3. $('.jakisbutton').bind('dblclick', function(){
  4. $.get('plik.php', function(data){
  5. alert('zapisano '+data);
  6. });
  7. });
  8. });


  1.  
  2. echo "<div id=\"jakistam\" class=\"jakisbutton\" ondblclick=\"funkcja();\">
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.