• 0

Execute PHP script in the background


Question

I'm pretty new to PHP so please just bear with me here...

I'm wondering if it's possible to execute a PHP script in the background, without disrupting the user's experience.

I've created a contact form and specified contact.php as it's action. However when submitted, this navigates the user away from the page and I use the PHP echo function to return the user back to the page once the script has completed (once the message has sent). What I'm trying to do specifically is this; once the user clicks "send", contact.php will execute in the background and once it has completed (or once the message has sent), a DIV will be displayed on the page - and all this occurs without the visitor being taken away from that page and without any other windows appearing.

Is it possible?

Link to comment
https://www.neowin.net/forum/topic/617980-execute-php-script-in-the-background/
Share on other sites

8 answers to this question

Recommended Posts

  • 0

What you want is AJAX.

http://www.w3schools.com/php/php_ajax_intro.asp

  Quote
The AJAX technique makes web pages more responsive by exchanging data with the web server behind the scenes, instead of reloading an entire web page each time a user makes a change.
  • 0

What you want to accomplish will require AJAX functionality, which is really just JavaScript communicating with a server. There are several JS frameworks that have built in AJAX functionality that makes the whole process much, much easier to do. I'd recommend jQuery, but there are other good frameworks out there.

You want to stop the form from submitting in the browser, or make your submit a button so that it doesn't post. I don't have time atm, but there's a little bit more to explain, like returning your data in JSON format and easily using that in JS, among other things. Just get started and see where you go, there are a lot of examples online :)

  • 0

I would also recommend jQuery. Once it's referenced within your HTML file, your Javascript can be as simple as this to do what you've requested:

$.ajax({type:"GET", url:"sendform.php?var1=text&var2=text", success: function(text) 
  {
	// It was a success, do something here
	$("#ThankYou").show();
  },
  error: function(XMLHttpRequest, textStatus, errorThrown) 
  {
	// There was an error, scream
	$("#Error").show();
  }
});

  • 0
  Rob said:
I would also recommend jQuery. Once it's referenced within your HTML file, your Javascript can be as simple as this to do what you've requested:

$.ajax({type:"GET", url:"sendform.php?var1=text&var2=text", success: function(text) 
  {
	// It was a success, do something here
	$("#ThankYou").show();
  },
  error: function(XMLHttpRequest, textStatus, errorThrown) 
  {
	// There was an error, scream
	$("#Error").show();
  }
});

So let me get this straight (I'm away from my computer so I can't test this myself). If I download jQuery and link it to my page, where would I insert that code?
  • 0

You'd have, somewhere, a button with an ID of Submit, let's say. Then you could place the following in a Script tag:

$(document).ready(function(){
  $("#Submit").click(function(){
	$.ajax({type:"GET", url:"test.txt", success: function(text){
		// The contents of test.txt have successfully been received through AJAX, do something here
	  },error: function(XMLHttpRequest, textStatus, errorThrown){
		// There's been an error, do something here
	  }
	});
  });
});

This, of course, is an example and doesn't actually submit your form, but just showcases how AJAX works with jQuery - I'd suggest looking at some jQuery tutorials as it's important you learn the basic syntax.

This topic is now closed to further replies.
  • Recently Browsing   0 members

    • No registered users viewing this page.
  • Posts

    • Clear Linux is open source, indeed, so its source code is available for anyone. They're just shutting down its support from them, they're not forbidding anyone else from taking over.
    • Linux Mint is also my favorite distro, but I fear what will happen with it if Clem were to disappear tomorrow, to be honest.
    • Yeah, I totally get your point, which is possible it could happen. I just hope there is a few people around him who are similar to where if they took over things would run pretty much the same. if not, then yeah, it could start to decline rapidly etc. but I figure something that's been around for a longer period of time with a decent backing, and probably more users than most Linux distro's (which I would 'imagine' Mint is one of the more used Linux desktop distro's by volume of people who use it), is less likely to just disappear. but like you said, nothing is guaranteed. but I do think you are probably right in that Clem is probably the core of what keeps Mint, Mint. I like how it tends to stay pretty much the same with some slight tweaks here and there (but is largely the same) instead of that crap some people go for with change for the sake of change trying to create a overly fancy interface and other unnecessary stuff etc. I also feel Mint keeps a nice balance of things out-of-the-box where it's not too bloated, nor too striped down. p.s. but I see Mint as a better Ubuntu basically. but I get your point like if it was more of a really serious choice of needing a 'safe bet' to use long term, then yeah something like official Ubuntu would be one of the better choices for sure given what you said with it being backed by an actual company which makes it a safer bet than Mint which is smaller and 'could' potentially be more fragile.
    • It’s in development so hopefully it’s improved upon before release.
    • For the 10th iteration they could have bothered with some design changes rather than just carrying over the 9's
  • Recent Achievements

    • First Post
      leoniDAM earned a badge
      First Post
    • Reacting Well
      Ian_ earned a badge
      Reacting Well
    • One Month Later
      Ian_ earned a badge
      One Month Later
    • Dedicated
      MacDaddyAz earned a badge
      Dedicated
    • Explorer
      cekicen went up a rank
      Explorer
  • Popular Contributors

    1. 1
      +primortal
      506
    2. 2
      ATLien_0
      209
    3. 3
      Michael Scrip
      202
    4. 4
      Xenon
      146
    5. 5
      +FloatingFatMan
      121
  • Tell a friend

    Love Neowin? Tell a friend!