Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL][PHP][AJAX] Problem ze zwróceniem wartości
Giekuss
post
Post #1





Grupa: Zarejestrowani
Postów: 20
Pomógł: 0
Dołączył: 4.05.2012

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


Witam,

Przerabiam pewien system newsletter na własne potrzeby i spotkałem się z problemem, a miaonowicie:

1. Chcę, aby dynamicznie było można zmieniać wartość rekordu w bazie danych tzn.
- klikam sobie w liście przycisk "T" i automatycznie zmienia mi jego wartość na "N", gdy będzie "N" to zmieni na "T"
- w skrypcie jaki przerabiam była właśnie taka możliwość (wykorzystałem ją do statusów: Nie aktywny - F, Aktywny - A, Rezygnacja - R)

- wszystko działa podczas subskrybcji dodawana jest wartość do bazy danych (wartość domyślna - T), jednak gdy przerabiam skrypt to nie chce mnie wypuścić do zmieniania tej wartości

Pozwolę sobie dodać kawałki kodu za to odpowiedzialne i to co sam napisałem, a nie działa sad.gif

  1. if($todo=='change_status'){
  2.  
  3. if($status=='F'){$status='A';}
  4. else if($status=='A'){$status='R';}
  5. else if($status=='R'){$status='F';}
  6.  
  7. $sql=$dbo->prepare("update nl_email set status='$status' where email_id=$email_id");
  8.  
  9. if($sql->execute()){
  10. $todo_return='status_updated';
  11. $db_status='success';
  12. $message='Status Updated';
  13. }
  14. else{
  15. $message=$sql->errorInfo();}
  16. }
  17.  
  18. else if($todo=='change_status1'){
  19.  
  20. if($status1=='T'){$status1='N'}
  21. else{$status1='T'}
  22.  
  23. $sql1=$dbo->prepare("update nl_email set status1='$status1' where email_id=$email_id");
  24.  
  25. if($sql1->execute()){
  26. $todo_return='status_updated1';
  27. $db_status='success';
  28. $message='Status Updated';
  29. }
  30. else{
  31. $message=$sql1->errorInfo();}
  32.  
  33. }


Powyższy kod nie działa - dla zmiany statusów (F/A/R), ale jeśli usunę else if to wtedy zmiana statusów będzie działała. - próbowałem na różne sposoby to rozwikłać i nie dawało rady - jak próbowałem wypluć alertem w .js wartość zmiennej $status1 - było napisane "undefined" -> próbowałem zaś ją na sztywno osadzić w powyższym kodzie, nadal wywalało komunikat "undefined"

  1. if(myObject.data.todo_return =='status_updated')
  2. {document.getElementById("msg").style.background='#ffff00';
  3. var status=myObject.data.status;
  4. document.getElementById("msg").innerHTML=myObject.data.message;
  5. var str="<a href=# onClick=ajaxFunction(" + email_id +",'change_status','" + status + "')>" + status + "</a>";
  6.  
  7. document.getElementById(email_id).innerHTML=str;
  8. }
  9. else{document.getElementById("msg").style.display='none';}


  1. if(myObject.data.todo_return =='status_updated1')
  2. {document.getElementById("msg").style.background='#ffff00';
  3. var status1=myObject.data.status1;
  4. document.getElementById("msg").innerHTML=myObject.data.message;
  5. var str="<a href=# onClick=ajaxFunction(" + email_id +",'change_status1','" + status1 + "')>" + status1 + "</a>";
  6.  
  7. document.getElementById(email_id).innerHTML=str;
  8. }
  9. else{document.getElementById("msg").style.display='none';}


Macie jakiś pomysł?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 3)
CuteOne
post
Post #2





Grupa: Zarejestrowani
Postów: 2 958
Pomógł: 574
Dołączył: 23.09.2008
Skąd: wiesz, że tu jestem?

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


  1. $key = 'A';
  2.  
  3. $corellations = array(
  4. 'F' => 'A',
  5. 'A' => 'R',
  6. 'R' => 'A'
  7. );
  8.  
  9. if (!array_key_exists($key, $corellations )) {
  10. throw new Exception('');
  11. }
  12.  
  13. $status = $corellations[$key];
  14.  
  15. $sql=$dbo->prepare("update nl_email set status='$status' where email_id=$email_id");
  16.  
  17. (...)
Go to the top of the page
+Quote Post
Giekuss
post
Post #3





Grupa: Zarejestrowani
Postów: 20
Pomógł: 0
Dołączył: 4.05.2012

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


Tylko, że sama zmiana F->A, A->R, R->F działa, gdy dodaję status_updated1 to mi przestają działać te 2 skrypty do zmiany sad.gif
Go to the top of the page
+Quote Post
Randallmaster
post
Post #4





Grupa: Zarejestrowani
Postów: 677
Pomógł: 11
Dołączył: 18.11.2009

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


Próbowałeś bez użycia ajaxa zapisać? ewentualnie wyświetlić zwrotkę w ajaxie?
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 21.08.2025 - 19:01