0

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)
   {
     renderDataTable('api/qnams_test.php');
     // 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.

1 Answer 1

1

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) {
         console.log(data);
         renderDataTable(d)
    });

 function renderDataTable(d){
    for(item in d){
       if (d.hasOwnProperty(item)) {
         console.log("Key is " + item + ", value is" + d[item]);
       }
    }
 }
Sign up to request clarification or add additional context in comments.

7 Comments

Using console.log(data), I can see the data in the console...but now how do I go about getting that data to the function, renderDataTable?
what is the format of the data ? Can you post some sample data? If it is a primitive datatype like a number or a string, you can do renderDataTable(data)
The data (from within the console) appears like this: [{ "CONCAT('\"',COALESCE('',''),'\"')":"\"\"", "CONCAT('\"',COALESCE(booking,''),'\"')":"\"NAM2262583\"", "CONCAT('\"',COALESCE(quote,''),'\"')":"\"QNAM048212\""}]
Try the following code var d = data[0]; renderDataTable(d); and in the function do... console.log(d["CONCAT('\"',COALESCE(booking,''),'\"')"]);
Damn...so close...it's funny because I have input values linked to the datatable, and when added the code you suggested, and made a few other adjustments, the value I entered now appears in the input fields on the datatable. SMH...I'll keep working on this.
|

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.