1

I'm struggling to pass a GET variable into a jquery file.

My code is

function upload(files){ // upload function
        var fd = new FormData(); // Create a FormData object
        for (var i = 0; i < files.length; i++) { // Loop all files
            fd.append('file_' + i, files[i]); // Create an append() method, one for each file dropped
        }
        fd.append('nbr_files', i); // The last append is the number of files

        $.ajax({ // JQuery Ajax
            type: 'POST',
            url: 'ajax/tuto-dd-upload-image.php?order=5', // URL to the PHP file which will insert new value in the database
            data: fd, // We send the data string
            processData: false,
            contentType: false,
            success: function(data) {
                $('#result').html(data); // Display images thumbnail as result
                $('#dock').attr('class', 'dock'); // #dock div with the "dock" class
                $('.progress-bar').attr('style', 'width: 100%').attr('aria-valuenow', '100').text('100%'); // Progress bar at 100% when finish
            },
            xhrFields: { //
                onprogress: function (e) {
                    if (e.lengthComputable) {
                        var pourc = e.loaded / e.total * 100;
                        $('.progress-bar').attr('style', 'width: ' + pourc + '%').attr('aria-valuenow', pourc).text(pourc + '%');
                    }
                }
            },
        });

I need the 5 in url: 'ajax/tuto-dd-upload-image.php?order=5' to be the vatriable order passed through a url like domain.com/?order=XX

1
  • y r u not adding a <input type="hidden" name="order" value="5"> or value="<?=$_GET['order']?>" Commented Oct 7, 2016 at 14:27

2 Answers 2

4

You can use PHP and export the variable:

var orderId = <?php echo json_encode($_GET['order']); ?>;

function upload(files) {
    ...
    url: 'ajax/tuto-dd-upload-image.php?order=' + orderId,

Or you could parse it directly in javascript:

var orderId = self.location.search.match(/order=(\d+)/)[1];

// Then continue like the previous example

Of course you'll probably need some error checking around this, if there's a chance the GET param might ever be missing.

Sign up to request clarification or add additional context in comments.

1 Comment

I tried yesterday, but there was a time limit on marking the answer. Marked it now. Thanks again.
0

Try with javascript :

function $_GET(key){
    var result = new RegExp(key + "=([^&]*)", "i").exec(window.location.search); 
    return result && result[1] || ""; 
}

and call $_GET(key) function in your $.ajax request.

var order = $_GET('order');
url: 'ajax/tuto-dd-upload-image.php?order='+order,

Comments

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.