HoodCoderMan HoodCoderMan - 1 year ago 51
jQuery Question

JQUERY DATATABLE return PHP script with data

I hope I worded the title correctly...

I currently have this function below:

function renderDataTable(serviceUrl)
var $dataTable = $('#example1').DataTable({
"ajax": serviceUrl

When the page is ready, I use this to send the url to set the table:

renderDataTable('api/qnams_all.php'); // api/qnams_all.php is the serviceUrl

I'm trying to send some values to a PHP script and return the records entered by the user:

$('#searchSubmit').on('click', function (){
var searchbooking = $('#searchbooking').val();
var searchquote = $('#searchquote').val();

$.post('api/qnams_test.php', {searchbooking: searchbooking, searchquote: searchquote}, function(data)
// I tried to do this as well ↓↓
// renderDataTable('api/qnams_test.php' + data);
// not successful

In the above $.post, I am sending the parameters to a different URL. I want to return the URL to the serviceUrl in renderDataTable(serviceUrl) so that the data refreshes with the new records.

I asked a similar question earlier today, but I wasn't getting any responses because the post was too long and too complicated to read. So here is my attempt to ask the same question, but shorter.

Please let me know if you need to see the PHP script.

Thank you in advance.

Answer Source

The function in your post is a promise function on success of the post. so what ever you echo in your php script is going to be in the "data" that is the argument to the function. Try the following and see what exactly you're getting. Then use it as needed.

$.post('api/qnams_test.php', {
    searchbooking: searchbooking
    , searchquote: searchquote}
    , function(data) {

 function renderDataTable(d){
    for(item in d){
       if (d.hasOwnProperty(item)) {
         console.log("Key is " + item + ", value is" + d[item]);