Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [JavaScript][PHP]Kalendarz rezerwacji - Ajax Calendar
casperii
post
Post #1





Grupa: Zarejestrowani
Postów: 681
Pomógł: 28
Dołączył: 14.08.2014

Ostrzeżenie: (0%)
-----


Panowie mam kalendarz rezerwacji nie swojego autorstwa:
Rezerwacja poszczególnego dnia wygląda w htmlu tak:

dla nie potwierdzonej rezerwacji:
  1. <li class="booked_pr" id="date_2017-09-03" title="03/09/2017 - Niepotwierdzone" data-date="3/09/2017" style="cursor: pointer;">3</li>


dla potwierdzonej rezewacji:
  1. <li class="booked" id="date_2017-09-03" title="03/09/2017 - Rezerwacja" data-date="3/09/2017" style="cursor: pointer;">3</li>


dla wolnego dnia:
  1. <li class="" id="date_2017-09-03" title="03/09/2017 - Wolne" data-date="3/09/2017" style="cursor: pointer;">3</li>


tak wygląda baza:
id |desc_pl | code | state| list_order |class |show_in_key
4 | Niepotwierdzone | pr | 1 | 0 |booked_pr | 1
1 | Rezerwacja | b | 1 | 1 |booked | 1

Po kliknięciu w poszczególny dzień poprzez ajax getem jest wykonywana komenda:
update_calendar.ajax.php?id_item=2&the_date=2017-09-04&lang=pl&id_state=

tylko, że zawsze po kliknięciu nie chwyta id_state i zawsze updatuje pierwszy z bazy czyli id_state=4,
doszedłem do tego ,że za ten błąd odpowiada JS:


  1. function update_calendar(el,date_num){
  2. var el=document.id(''+el.id+'');
  3. var id_pre_state="";
  4.  
  5. if(document.id('id_predefined_state')){
  6. id_pre_state=$('id_predefined_state').get('value');
  7. }
  8.  
  9. var req = new Request({
  10. method: 'get',
  11. url: url_ajax_update,
  12. data: {
  13. 'id_item':id_item,
  14. 'the_date':el.id.replace("date_",""),
  15. 'lang':lang,
  16. 'id_state':id_pre_state
  17. },
  18. evalScripts:true,
  19. onRequest: function() {
  20. // loading image
  21. },
  22. onSuccess: function(response) {
  23. // split response to get class,date and desc
  24. tmp=response.split('|');
  25.  
  26. // add returned class
  27. el.addClass(tmp[0]);
  28.  
  29. // change title to reflect new state
  30. el_title=el.getProperty('title');
  31. new_title=tmp[1]+" - "+tmp[2];
  32. el.setProperty('title',new_title);
  33.  
  34. // show message
  35. if(show_message) new_msg(tmp[1]+" "+tmp[2]);
  36. }
  37. }).send();
  38. }
  39.  


tylko skąd się to ma brać: id_predefined_state ? przecież w kodzie html nie ma tego , przypominam, że skrypt nie jest mojego autorstwa.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
casperii
post
Post #2





Grupa: Zarejestrowani
Postów: 681
Pomógł: 28
Dołączył: 14.08.2014

Ostrzeżenie: (0%)
-----


id_item to numer oferty, ja potrzebuje id_state (czyli nazwa rezerwacja / nie potwierdzona)

Nie rozumiem co robię, źle jeśli mam zwykłe mysql_query jest ok, jeśli zastąpie to pdo to tylko 1 pobiera:


działa mysql_query:
  1. if(!$db_lnk = mysql_connect($db_host,$db_user,$db_pass))
  2. {
  3. echo("Nie udało się nawiązać połączenia z serwerem MySQL!<br/>");
  4. };
  5.  
  6. if(!mysql_select_db("$db_base"))
  7. {
  8. echo("Baza danych niedostępna!<br/>");
  9. };
  10.  
  11. $the_date = $_GET["the_date"];
  12. $id_item = $_GET["id_item"];
  13.  
  14.  
  15. if( ($_REQUEST["id_item"]=="") || ($_REQUEST["the_date"]=="")){
  16. die("Error");
  17. }
  18.  
  19. $list_states=array();
  20.  
  21. $sql="SELECT * FROM bookings_states WHERE state=1 ORDER BY list_order ASC";
  22. $res=mysql_query($sql) or die("Error getting states");
  23. while($row=mysql_fetch_assoc($res)){
  24. $list_states[$row["id"]]=array("class"=>"".$row["class"]."","desc"=>"".$row["desc_pl"]."");
  25. }
  26.  
  27. if($_GET["id_state"]=="Wolne"){
  28. $update="DELETE FROM bookings WHERE id_item='".$id_item."' AND the_date='".$the_date."' LIMIT 1";
  29. $new_class="";
  30. $new_desc =$lang["available"];
  31. }else{
  32. $sql="SELECT id_state FROM bookings WHERE id_item='".$id_item."' AND the_date='".$the_date."'";
  33. $res=mysql_query($sql);
  34. if(mysql_num_rows($res)==0){
  35.  
  36. if($_GET["id_state"]!="") $new_state = $_GET["id_state"];
  37. else $new_state = key($list_states);
  38. if($debug) echo "<br>New state first key ".$new_state;
  39. $new_desc = $list_states[$new_state]["desc"];
  40. $new_class = $list_states[$new_state]["class"];
  41. $update = "INSERT INTO bookings SET id_item='".$id_item."',the_date='".$the_date."', id_state='".$new_state."'";
  42. }else{
  43. $row=mysql_fetch_assoc($res);
  44. if($debug) echo "<br>".print_r($row);
  45.  
  46. $current_state_id=$row["id_state"];
  47. if($debug) echo "<br>Current ID: ".$current_state_id;
  48.  
  49. foreach($list_states as $id=>$val){
  50. if($id==$current_state_id) break;
  51. next($list_states);
  52. }
  53.  
  54. if($_GET["id_state"]!="") $new_state = $_GET["id_state"];
  55. else $new_state = key($list_states);
  56. if($debug) echo "<br>New State: ".$new_state;
  57. if($new_state==""){
  58.  
  59. $update="DELETE FROM bookings WHERE id_item='".$id_item."' AND the_date='".$the_date."' LIMIT 1";
  60. $new_class="";
  61. $new_desc =$lang["available"];
  62. }else{
  63. $update="UPDATE bookings SET id_state='".$new_state."' WHERE id_item='".$id_item."' AND the_date='".$the_date."' LIMIT 1";
  64.  
  65. $new_desc = $list_states[$new_state]["desc"];
  66. $new_class = $list_states[$new_state]["class"];
  67. }
  68.  
  69. }
  70. }
  71.  
  72. if(!mysql_query($update));
  73.  
  74.  
  75. $sql="SELECT * FROM bookings_last_update WHERE id_item='".$id_item."'";
  76. if(!$res=mysql_query($sql)) die("ERROR GETTING CHECKING UPDATE DATE.<br>".mysql_error());
  77. if(mysql_num_rows($res)==0) $update="INSERT INTO bookings_last_update SET id_item='".$id_item."', date_mod=now()";
  78. else $update="UPDATE bookings_last_update SET date_mod=now() WHERE id_item='".$id_item."' LIMIT 1";
  79.  
  80. mysql_query($update);
  81.  
  82.  
  83. $date_bits=explode("-",$the_date);
  84. $date_format=$date_bits[2]."/".$date_bits[1]."/".$date_bits[0];
  85.  
  86. echo $new_class."|".$date_format."|".$new_desc;




nie działa pdo:
  1. $the_date = $_GET["the_date"];
  2. $id_item = $_GET["id_item"];
  3.  
  4.  
  5. if( ($_GET["id_item"]=="") || ($_GET["the_date"]=="")){
  6. die("Error");
  7. }
  8.  
  9. $list_states=array();
  10. $pdo = new db_connect();
  11. $sql = $pdo->prepare("SELECT * FROM bookings_states WHERE state=1 ORDER BY list_order ASC");
  12. $sql->execute();
  13. while($row = $sql->fetch()){
  14. $list_states[$row["id"]]=array("class"=>"".$row["class"]."","desc"=>"".$row["desc_pl"]."");
  15. }
  16.  
  17. if($_GET["id_state"]=="Wolne"){
  18. $update = $pdo->prepare("DELETE FROM bookings WHERE id_item='".$id_item."' AND the_date='".$the_date."' LIMIT 1");
  19. $update->execute();
  20. $new_class="";
  21. $new_desc = $lang["pl"];
  22. }else{
  23. $sql = $pdo->prepare("SELECT id_state FROM bookings WHERE id_item='".$id_item."' AND the_date='".$the_date."'");
  24. $sql->execute();
  25. $res = $sql->fetchColumn();
  26.  
  27. if($res==0){
  28. if($_GET["id_state"]!=""){
  29. $new_state = $_GET["id_state"];
  30. }else{
  31. $new_state = key($list_states);
  32. }
  33. if($debug) echo "New state first key ".$new_state;
  34. $new_desc = $list_states[$new_state]["desc"];
  35. $new_class = $list_states[$new_state]["class"];
  36. $update = $pdo->prepare("INSERT INTO bookings SET id_item='".$id_item."',the_date='".$the_date."', id_state='".$new_state."'");
  37. $update->execute();
  38. }else{
  39. $row = $sql->fetch();
  40. if($debug) echo "<br>".print_r($row);
  41.  
  42. $current_state_id = $row["id_state"];
  43. if($debug) echo "Current ID: ".$current_state_id;
  44.  
  45. foreach($list_states as $id=>$val){
  46. if($id == $current_state_id) break;
  47. next($list_states);
  48. }
  49.  
  50. if($_GET["id_state"]!="")
  51. $new_state = $_GET["id_state"];
  52. else
  53. $new_state = key($list_states);
  54. if($debug) echo "New State: ".$new_state;
  55.  
  56. if($new_state==""){
  57. $update = $pdo->prepare("DELETE FROM bookings WHERE id_item='".$id_item."' AND the_date='".$the_date."' LIMIT 1");
  58. $update->execute();
  59. $new_class="";
  60. $new_desc = $lang["available"];
  61. }else{
  62. $update = $pdo->prepare("UPDATE bookings SET id_state='".$new_state."' WHERE id_item='".$id_item."' AND the_date='".$the_date."' LIMIT 1");
  63. $update->execute();
  64. $new_desc = $list_states[$new_state]["desc"];
  65. $new_class = $list_states[$new_state]["class"];
  66. }
  67.  
  68. }
  69. }
  70.  
  71. $sql = $pdo->prepare("SELECT * FROM bookings_last_update WHERE id_item='".$id_item."'");
  72. $sql->execute();
  73. if($sql->fetchColumn() == 0){
  74. $update = $pdo->prepare("INSERT INTO bookings_last_update SET id_item='".$id_item."', date_mod=now()");
  75. $update->execute();
  76. }else{
  77. $update = $pdo->prepare("UPDATE bookings_last_update SET date_mod=now() WHERE id_item='".$id_item."' LIMIT 1");
  78. $update->execute();
  79. }
  80.  
  81.  
  82.  
  83. if($debug) echo "SQL: ".$update."New Class: ";
  84. $date_bits = explode("-",$the_date);
  85. $date_format = $date_bits[2]."/".$date_bits[1]."/".$date_bits[0];
  86.  
  87. echo $new_class."|".$date_format."|".$new_desc;
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 7.10.2025 - 01:34