Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> dynamic list + zapisywanie do arraya.
dirtyhustlaz
post 20.06.2012, 14:52:58
Post #1





Grupa: Zarejestrowani
Postów: 22
Pomógł: 0
Dołączył: 29.03.2012

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


no wiec tak, musze zrobic do szkoly skrypt do bookawania biletow, musi on uzywac dynamic list i zapisywac informacje do arraya zebym mogl pozniej je wyswietlic w formie zamowienia. mam problem zapisuje mi tylko dane z pierwszej i drugiej listy a 3 i 4 zapisuje wszystkie opcje naraz.

powinno byc: artysta - miasto - wybrana data - wybrana cena
a pokazuje: artysta - miasto - wszystkie dostepne daty - wszystkie dostepne ceny

przez to tez mi nie podlicza total na zamowieniu.

oto kod mojego skryptu:
http://snipt.org/vahv9

okej, okroilem troche skrypt, dane personalne wrzucilem na inna podstrone, teraz zostal tylko wybor artysty, miasta, daty i ceny.

dalej mi sie wyswietla
wybrany artysta - wybrane misato - wszystie daty - wszystkie ceny

a chce
wybrany artysta - wybrane miasto - wybrana data - wybrana cena

dlaczego zapisuje mi tylko poprawne informacje z pierwszej listy i drugien a z trzeciej i czwartej bierze wszystkie opcje??! juz kij w to podliczanie ale zeby poprawnie zapisywalo i wyswietlalo.


http://snipt.org/embed/vahQ4

juz znalalzlem blad i wyswietla mi sie poprawnie, teraz mam problem z podliczaniem ceny. chcialbym zeby ceny wszystkich dodanych do arraya biletow byly podliczane razem na koniec i zeby dodawalo dodatkowo 10 do total jesli jest wiecej nic 4 bilety.


prosze pomocie musze oddac to do 5 godziny biggrin.gif


to jest moja funkcja wyswietlania biletow: ( to tu bym chcial zeby byly podliczane wszystkie bilety i dodawane 10 jesli jest ich wiecej niz 4

  1. function displayOrder()
  2. {
  3. var total = 0;
  4. for(var i = 1; i < index; i++)
  5. {
  6. document.write(i+". "+nameOfArtist[i]+" - "+nameOfCity[i]+" - "+dataOfConcert[i]+" - "+priceOfTicket[i]+"<br>");
  7. total += parseFloat(priceOfTicket[i]);
  8.  
  9. }
  10. total = parseFloat(total).toFixed(2);
  11. document.write("<br><b>Total: </b>"+total);
  12. }
Go to the top of the page
+Quote Post
wszerad
post 20.06.2012, 15:04:40
Post #2





Grupa: Zarejestrowani
Postów: 106
Pomógł: 18
Dołączył: 11.12.2008

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


Ale syfiasty kod... Mam nadzieje, że robisz to bo jesteś zmuszany:D
"to tu bym chcial zeby byly podliczane wszystkie bilety i dodawane 10 jesli jest ich wiecej niz 4" - możesz to przetłumaczyć bo nie wiem co się dzieje. Jeżeli wybierzesz więcej niż 4 bilety to do całkowitego kosztu dodajesz 10? Jakies to bez sensu...
Go to the top of the page
+Quote Post
dirtyhustlaz
post 20.06.2012, 15:17:20
Post #3





Grupa: Zarejestrowani
Postów: 22
Pomógł: 0
Dołączył: 29.03.2012

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


no o to chodzi ze jak dodam do listy wiecej niz 4 bilety to musi doliczyc 10 do total, to nie ja wymyslalem tylko takie zadanie dostalem ze szkoly
Go to the top of the page
+Quote Post
wszerad
post 20.06.2012, 15:21:46
Post #4





Grupa: Zarejestrowani
Postów: 106
Pomógł: 18
Dołączył: 11.12.2008

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


"When tou order more than 10 ticket you will be charged extra 10 pound."
Taki kawałek miałeś w kodzie ale zrobie jak chcesz:
  1. function displayOrder(){
  2. var total = 0;
  3. for(var i = 1; i < index; i++)
  4. {
  5. document.write(i+". "+nameOfArtist[i]+" - "+nameOfCity[i]+" - "+dataOfConcert[i]+" - "+priceOfTicket[i]+"<br>");
  6. total += parseFloat(priceOfTicket[i]);
  7.  
  8. }
  9. if(index>5) //zauważyłem, że dla jednego biletu index ma już 2 więc +1
  10. total += 10;
  11.  
  12. total = parseFloat(total).toFixed(2);
  13. document.write("<br><b>Total: </b>"+total);
  14. }


Dodawane jest tylko raz, nie za każde 4 bilety tak jak by Ci coś nie pasowało. W tablicach pierwszy element ma index 0 więc ucina ci tu pierwszy bilet, chyba że już to pozmieniałeś względem tego co wkleiłeś.

Ten post edytował wszerad 20.06.2012, 15:32:48
Go to the top of the page
+Quote Post
dirtyhustlaz
post 20.06.2012, 15:38:28
Post #5





Grupa: Zarejestrowani
Postów: 22
Pomógł: 0
Dołączył: 29.03.2012

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


dzieki za pomoc, widze ze to spoko bedzie dzialac jak mi sie uda wogole doprowadzic do porzadku podliczanie cen.

Podam jeszcze raz kod calego skryptu, aktualnej wersji, moglbys spojrzec swiezym okiem i powiedizec czemu podliczanie nie dziala?! wink.gif

<< kod calego skryptu >> http://snipt.org/vahR3
Go to the top of the page
+Quote Post
wszerad
post 20.06.2012, 15:46:57
Post #6





Grupa: Zarejestrowani
Postów: 106
Pomógł: 18
Dołączył: 11.12.2008

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


  1. <input type="button" onclick="addTicket()" value="Add Ticket"></input>
  2. <input type="button" onclick="displayOrder()" value="Calculate"></input>

zamiast tych "button"

Ten post edytował wszerad 20.06.2012, 16:05:06
Go to the top of the page
+Quote Post
dirtyhustlaz
post 20.06.2012, 15:54:17
Post #7





Grupa: Zarejestrowani
Postów: 22
Pomógł: 0
Dołączył: 29.03.2012

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


zmiana buttonow tez nic nie dala, wszystko sie wyswietlalo jak dalem calculate, tyko nie podlicza total.
Go to the top of the page
+Quote Post
wszerad
post 20.06.2012, 16:02:43
Post #8





Grupa: Zarejestrowani
Postów: 106
Pomógł: 18
Dołączył: 11.12.2008

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


  1. var nameOfArtist = Array(), nameOfCity = Array(), dataOfConcert = Array(), priceOfTicket = Array(), numberOfTickets = Array(), index = 1, total = 0, tickets = [];
  2.  
  3. function addTicket(){
  4. var form = document.forms['form'],
  5. art = form['artist'].value,
  6. city = form['city'].value,
  7. data = form['data'].value,
  8. price = form['price'].value,
  9. tnumber = form['tnumber'].value;
  10.  
  11. tickets.push([art,city,data,price,tnumber]);
  12. }
  13.  
  14. function displayOrder(){
  15. var total = 0;
  16.  
  17. for(var i=0;i<tickets.length;i++){
  18. var ticket = tickets[i];
  19. document.write((i+1)+'. '+ticket[0]+' - '+ticket[1]+' - '+ticket[2]+' - '+ticket[3]+'<br>');
  20. total += ticket[3]*ticket[4];
  21. }
  22.  
  23. document.write("<br><b>Total: </b>"+total.toFixed(2));
  24. }
  25.  
  26.  
  27. </script>
  28.  
  29. </head>
  30.  
  31. <body>
  32.  
  33. <form name="form">
  34. <h3> Choose you tickets:</h3>
  35. <h5>Artist:</h5>
  36. <select id="artist" onchange="GetArtist()">
  37. <option value="">Choose Artist</option>
  38. <option value="Madonna">Madonna</option>
  39. <option value="Rod Stewart">Rod Stewart</option>
  40. <option value="Guns n Roses">Guns n Roses</option>
  41. <option value="Oasis">Oasis</option>
  42. <option value="Beyonce">Beyonce</option>
  43. </select>
  44. <h5>City:</h5>
  45. <select id="city" onchange="GetDates()">
  46. <option value="">Choose City</option>
  47. <option value="London">London</option>
  48. <option value="Manchaster">Manchaster</option>
  49. </select>
  50. <h5>Dates available:</h5>
  51. <select id="data" onchange="GetPrices()">
  52. <option value="">Choose date</option>
  53. <option value="17 July">17 July</option>
  54. <option value="18 July">18 July</option>
  55. </select>
  56. <h5>Prices:</h5>
  57. <select id="price">
  58. <option value="">Choose Price</option>
  59. <option value="30">30</option>
  60. <option value="45">45</option>
  61. <option value="70">70</option>
  62. </select>
  63. <h5>No of people:</h5>
  64. <select id="tnumber">
  65. <option value="">No of people</option>
  66. <option value="1">1</option>
  67. <option value="2">2</option>
  68. <option value="3">3</option>
  69. <option value="4">4</option>
  70. <option value="5">5</option>
  71. <option value="6">6</option>
  72. </select>
  73. <input type="button" onclick="addTicket()" value="Add Ticket"></button>
  74. <input type="button" onclick="displayOrder()" value="Calculate"></button>
  75. </form>
  76.  
  77. When tou order more than 4 ticket you will be charged extra 10 pound.
  78.  
  79. </body>
  80.  
  81. </html>


Musiałem sobie zapisać w pliku zeby sprawdzic co sie dzieje, u mnie jest ok (zmodyfikowalem kod wyżej pare sekund po publikacji wiec odswiez jak cos)

  1. function addTicket(){
  2. var form = document.forms['form'],
  3. art = form['artist'].value,
  4. city = form['city'].value,
  5. data = form['data'].value,
  6. price = form['price'].value,
  7. tnumber = form['tnumber'].value;
  8.  
  9. while(tnumber--){
  10. tickets.push([art,city,data,price]);
  11. }
  12. }
  13.  
  14. function displayOrder(){
  15. var total = 0;
  16.  
  17. for(var i=0;i<tickets.length;i++){
  18. var ticket = tickets[i];
  19. document.write((i+1)+'. '+ticket[0]+' - '+ticket[1]+' - '+ticket[2]+' - '+ticket[3]+'<br>');
  20. total += ticket[3]*1;
  21. }
  22.  
  23. document.write("<br><b>Total: </b>"+total.toFixed(2));
  24. }

teraz juz chyba wszystko

Ten post edytował wszerad 20.06.2012, 16:07:40
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 Wersja Lo-Fi Aktualny czas: 19.07.2025 - 20:34