• 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

    • good grief .... first brittney murphy in the first run now him
    • I do not think that Windows 11 will pick up pace as October 2025 draws near. Even though I was a Windows Vista fan back in the day, this really reminds me of the (lack of) transition between Windows XP to Windows Vista. In the end, Microsoft had to backtrack and extend Windows XP support until Windows 7 was adopted.
    • How many minutes until they rename this? Outside of the search engine itself, it seems anything with the Bing name attached quickly gets renamed.
    • Save 15% on the Insta360 Link 2 4K Webcam, now available at the lowest price by Taras Buria Insta360 is known for its high-quality 360-cameras, but the company also offers high-end webcams for those who want to elevate their video calls or streaming. Right now, the Insta360 Link 2 4K webcam is available at a new all-time low price, saving you 15% off the standard MSRP. The Insta360 Link 2 is not your standard 4K webcam. This camera is mounted on a two-axis gimbal that physically pans and tilts to follow you as you move around the room. You can also set boundaries to prevent the camera from capturing certain areas and control it with gestures for a hands-free experience. The camera itself has a large 1/2" 4K sensor that captures more light and details with HDR and low-light mode support. A larger sensor also means a more natural bokeh effect. Built-in microphones support voice focus and voice suppression, and the camera can balance your voice with background music. Other features include additional modes, such as whiteboard mode, DeskView mode, portrait mode, and privacy mode. The latter tilts the camera down after 10 seconds of inactivity (you can also push it down manually). The Insta360 Link 2 is also remotely operated with a dedicated phone app, plus its desktop software lets you adjust features like background, filters, and more. Insta360 Link 2 4K Webcam - $169.99 | 15% off on Amazon US Insta360 Link 2 4K Webcam Tripod Bundle - $195 | 15% off on Amazon US This Amazon deal is US-specific and not available in other regions unless specified. If you don't like it or want to look at more options, check out the Amazon US deals page here. Get Prime (SNAP), Prime Video, Audible Plus or Kindle / Music Unlimited. Free for 30 days. As an Amazon Associate, we earn from qualifying purchases.
    • RIP Jonathan Joss aka John Redcorn https://www.nbcnews.com/news/us-news/jonathan-joss-king-hill-voice-actor-killed-san-antonio-shooting-rcna210437
  • Recent Achievements

    • Week One Done
      Nullun earned a badge
      Week One Done
    • First Post
      sultangris earned a badge
      First Post
    • Reacting Well
      sultangris earned a badge
      Reacting Well
    • First Post
      ClarkB earned a badge
      First Post
    • Week One Done
      Epaminombas earned a badge
      Week One Done
  • Popular Contributors

    1. 1
      +primortal
      160
    2. 2
      ATLien_0
      124
    3. 3
      Xenon
      120
    4. 4
      snowy owl
      109
    5. 5
      +Edouard
      97
  • Tell a friend

    Love Neowin? Tell a friend!