Sign in to follow this  
Followers 0
ReiniG

adding items to shopping cart from javascript function

5 posts in this topic

I'm trying to develop a simple theatre seat reservation system. I'm using a text file "seats.txt", where I store seat number and status (f, r, s) and read the file line by line.

If the user clicks on an image the javascript function is triggered and the image will change:

<?php 
$counter = 0;
$file = 'seats.txt';
$line = file($file);
for($i=0;$i < 14;$i++){ 
	$counter = $counter + 1; 
	$string = $line[$i]; 
	if($counter == 8) { echo "&nbsp &nbsp <img src='R1.bmp' /> &nbsp &nbsp &nbsp &nbsp"; } 
	if(substr($string,4,1) == "f") { 
		echo "<img id=$i onclick='myFunction(id)' src='chkBox_10.bmp' title='0' /> &nbsp &nbsp"; } 
	else if(substr($string,4,1) == "s") { 
		echo "<img id=$i onclick='myFunction(id)' src='chkBox_2.bmp' title='2' /> &nbsp &nbsp"; } 
	else if(substr($string,4,1) == "r") { 
		echo "<img id=$i onclick='myFunction(id)' src='chkBox_1.bmp' title='1' /> &nbsp &nbsp"; } 
	else {
    echo "<img id=$i onclick='myFunction(id)' src='chkBox_3.bmp' title='3' /> &nbsp &nbsp"; }
}
?>
<script>
function myFunction(imgID) {
  var img = document.getElementById(imgID).title;
  if (img == "1") {
  window.alert("Reserved seat!");
	} else if (img == "2") {
  window.alert("Sold seat!");
	} else if (img == "3") {
  window.alert("Handicap seat!");
	} else if (img == "4") {
  document.getElementById(imgID).src = "chkBox_10.bmp";	
  document.getElementById(imgID).title = "0";
  } else {
  document.getElementById(imgID).src = "chkBox_4.bmp";	
  document.getElementById(imgID).title = "4";
  }
}
</script>

My question is now: How can I get the selected seats (from the client side javascript) into a shopping cart (eventually on another page)?

Share this post


Link to post
Share on other sites

You'll need a server-side application built to read and update seats, then you would use AJAX to make the system work without reloading the page. Generally you would use a database instead of a text file to store the information about the clients and seats.

 

Share this post


Link to post
Share on other sites

So you mean that it will not work the way I set it up?

But the seat selection by the user will always be at the client side!

I chose to use a simple text file, because there is little data and I think it is faster than accessing a database.

Share this post


Link to post
Share on other sites

If you actually want to keep track of all the seats that are sold so that other users can't buy them then you definitely need the data sent to the server-side. A client-side application would serve, at best, as a simulation of a seat reservation system, but if you're not keeping track of who bought which seats on the server then you can't actually sell real seats at a real theater.

Share this post


Link to post
Share on other sites

It's fine if you want to use a text file as your data store, although if you're going to do any searching or filtering on that data then you're wrong about a database being slower.  Text files can also have consistency issues if you need to save new data back to the text file, because you could get into a condition where two people are using the site at exactly the same time and one person saves their data right before the second person saves their data, and the second person's data doesn't include the first person's data.  You end up with only the second changes saved and you've lost the first changes.  It's fairly rare for that to happen because it requires very specific timing, but it's a possibility when you're reading and writing to files.

 

As far as passing data to another page, with HTML in general you can either pass data through a post form or through the URL, or you can use a cookie.  With PHP you can also use the session for storing data, but in order for that to happen you need to send the data to PHP through a form submission or ajax request or through the URL.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now
Sign in to follow this  
Followers 0