Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][AJAX]okienko dialog plus interaktywny textarea
Forum PHP.pl > Forum > Przedszkole
casperii
Panowie mam skrypt:
  1. <?php
  2. if(isset($action) && $action == "submit"){
  3. echo "You wrote #1:<br>".stripslashes($rich_one)."<br><br>";
  4. }
  5. ?>


  1. <form method="post" onsubmit="save_in_textarea_all();">
  2. <input type="hidden" name="action" value="submit">


  1. <?php
  2. $val_one = '';
  3. $ed_1 = new rich('News #1 (active mode)', 'rich_one', $val_one, "100%", 300, "","");
  4. $ed_1->active_mode();
  5. $snippets[] = array('name'=>'Green bold text', 'code'=>'<font color="green"><b>Green bold text</b></font>');
  6. $snippets[] = array('name'=>'Image in table', 'code'=>'<table border="1"><tr><td><IMG style="WIDTH: 90px; HEIGHT: 117px" src=""></td></tr></table>');
  7. $ed_1->set_snippets($snippets);
  8. $ed_1->draw();
  9. ?>


  1. <input type="submit" value="Ok">
  2. </form>


Powyższy kod działa tylko wtedy gdy:
onsubmit="save_in_textarea_all();" jest w formie i przekazuje zmienną rich_one po wciśnięciu ok.

Teraz powyższy kod chciałbym żeby mi zadziałał w okienku dialog. Czyli po wciśnięciu jakiegoś tam buta otwieram okienko , wczytuje mi się textarea z możliwością interaktywnego formatowania tekstu. Wciskam zapisz i przesyła zmienną. Otóż nie wiem czemu ale tak się nie dzieje.
Być może to:
  1. onsubmit="save_in_textarea_all();"

powinno być osadzone w kodzie JS ?


Mój kod js:

  1. $('#Open').live('click', function(e){
  2. $("#Window").dialog({
  3. height: 650,
  4. width: 750,
  5. left: 610,
  6. buttons:{
  7. "Zapisz": function(submit){
  8. var form = $('#Update'),
  9. formData = form.serialize(),
  10. formUrl = form.attr('action'),
  11. formMethod = form.attr('method'),
  12. responseMsg = $('#response');
  13. responseMsg.hide().addClass('response-waiting').text('czekaj...').fadeIn(300);
  14. save_in_textarea_all();
  15.  
  16. $.ajax({
  17. type:'POST',
  18. url: "/ajax.php",
  19. data: formData,
  20. processData: false,
  21. success: function(data){
  22. var dataObject = jQuery.parseJSON(data);
  23. var responseData = jQuery.parseJSON(data),
  24. klass = '';
  25.  
  26. switch(responseData.status){
  27. case 'error':
  28. klass = 'response-error';
  29. break;
  30.  
  31. case 'success':
  32. klass = 'response-success';
  33.  
  34. setTimeout(function(){
  35. $('#Window').dialog('close');
  36. }, 1000);
  37.  
  38. break;
  39. }
  40.  
  41. responseMsg.fadeOut(200,function(){
  42. $(this).removeClass('response-waiting').addClass(klass).text(responseData.message).fadeIn(200,function(){
  43. setTimeout(function(){
  44. responseMsg.fadeOut(200,function(){
  45. $(this).removeClass(klass);
  46. });
  47. },3000);
  48. });
  49. });
  50. console.log(data)
  51. }
  52. });
  53. e.preventDefault();
  54. },
  55.  
  56. "Anuluj": function(){
  57. $( this ).dialog( "close" );
  58. }
  59. },
  60.  
  61. close: function(){}
  62. });
  63. return false;
  64. });


Tak na marginesie czy to ma znaczenie gdzie jest osadzone:
  1. onsubmit="save_in_textarea_all();"

czy w formie czy w JS ?
trueblue
Zmienną formData przygotowujesz przed wywołaniem funkcji save_in_textarea_all.
casperii
Cytat(trueblue @ 11.07.2015, 19:40:38 ) *
Zmienną formData przygotowujesz przed wywołaniem funkcji save_in_textarea_all.



Czyli jak mam to ugryźć @trueblue by działało? słabo się znam na JS.
trueblue
Kod
"Zapisz": function(submit){
save_in_textarea_all();
var form = $('#Update'),
formData = form.serialize(),
...


To: onsubmit="save_in_textarea_all();"> wypada z kodu formularza.
casperii
@trueblue dzięki pomogło, ale powstał taki dziwaczny problem. otóż jak mam w kodzie otwartego okienka dialog tą cześć:

  1. <?php
  2. $val_one = '';
  3. $ed_1 = new rich('News #1 (active mode)', 'rich_one', $val_one, "100%", 300, "","");
  4. $ed_1->active_mode();
  5. $snippets[] = array('name'=>'Green bold text', 'code'=>'<font color="green"><b>Green bold text</b></font>');
  6. $snippets[] = array('name'=>'Image in table', 'code'=>'<table border="1"><tr><td><IMG style="WIDTH: 90px; HEIGHT: 117px" src=""></td></tr></table>');
  7. $ed_1->set_snippets($snippets);
  8. $ed_1->draw();
  9. ?>


która odpowiada za wyświetlenie interaktywnego textarea to przy zamknięciu okienka dialog strasznie dziwnie się te okienko zamyka a'la migawka, a nie efekt explode. Da się jakoś to naprawić? Konsola nie wywala żadnych błędów.
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.