douyinlai2169
2016-10-07 14:24 阅读 93

在ajax查询中使用动态变量

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

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享

2条回答 默认 最新

  • 已采纳
    draxq02664 draxq02664 2016-10-07 14:27

    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.

    点赞 评论 复制链接分享
  • dongze5043 dongze5043 2016-10-07 15:30

    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,
    
    点赞 评论 复制链接分享

相关推荐