I would like to know if it would be possible to run an update query when an item is selected from a drop down list. The user makes a choice, a function is then called to update a particular field in a database. This will be achieved using a select box to store the options. Thanks.
echo '<td>';
echo '<select name="order_status[]" onChange = "update()">';
echo '<option value = "1" class ="pending">Pending</option>';
echo '<option value = "2" class = "approved">Approved</option>';
echo '<option value = "3" class ="disapproved">Disapproved</option>';
echo '</select>';
echo '</td>';
echo '</tr>';
Yes, it’s possible. If you want the query to be run seamlessly (that is, without a submit button being pressed and the page refreshing), then you’ll need to use Ajax to send the request asynchronously to your PHP script.
EDIT: The easiest thing to do is simply use jQuery’s
$.get()functionality in youronchangeevent. That way, each time someone chooses an option, jQuery will send the request to your PHP script with that option’s value. The PHP script will run, and return the new data back to your jQuery, which will then use its DOM functionality to insert that data into your page.You can do the same thing with a button. Just stick
$.get()in the button’sonclickevent rather than in the select element’sonchangeevent.The jQuery site’s documentation will give you relevant code examples.
EDIT 2: Okay, here’s a very canned example.
First, let’s think about the actual process you want to have happen on the back end. In the simplest terms, you want to take an id from user input and use that to run in a query. Pretty straight forward (using PDO for the database work):
Okay, so the back end is pretty simple. Now, for the font end, where the magic happens. Here’s how I’d approach using both a
selectelement and abuttonin order to pass the id back to the PHP script, and then handle the results:None of this is tested, and it’s admittedly incomplete, but that should be more than enough to get started. Really, all you’ll need to figure out is how to drill into the returned data (it’s a JSON object, so it shouldn’t be too bad… use a browser’s web development tools to see how the data is actually formed) and insert it where you want. That, and any dumb errors I may have made above.
Hope this helps!