2016-02-13 154 views
0

我在理解將信息從PHP傳遞給JS和返回的邏輯方面存在實際問題。我一直在這個工作,並會非常感激,如果有人能告訴我如何將兩個變量傳遞給ajax函數。將PHP變量傳遞給Ajax函數將變量JS轉換爲PHP

$ assetPath和$計入下面註釋的行中。我試圖通過添加php來包括它們,但是在DOM中,它顯示爲空字符串,並且我無法得到期望的結果。

var assetPath ='<?php echo $assetPath; ?>'; 
var num ='<?php echo $count; ?>'; 

(function($) { 
$(document).ready(function(){ 
$('.pager-top,.pager-bottom').bootpag({ 
    total: assetPath, 
    page: 1, 
    maxVisible: 5, 
    leaps: true, 
    firstLastUse: true, 
    first: '←', 
    last: '→', 
    wrapClass: 'pagination', 
    activeClass: 'active', 
    disabledClass: 'disabled', 
    nextClass: 'next', 
    prevClass: 'prev', 
    lastClass: 'last', 
    firstClass: 'first' 
}).on("page", function(event, num){ 
    $.ajax({ 
      url: "assetPath?pageNumber="+num, 
      }).done(function(data) { 
      $("#productResults").html(data); 
      }); 
}); 
})(jQuery); 
}); 
+0

所以'$ assetPath'裏面真的有一個值嗎? –

+0

assetPath中有一個url路徑。嚴重的是這讓我感到很蠢。我還沒有睡,因爲我真的想明白這一點。請給我解釋一下。數據來回傳遞和Ajax的基本概念。我經歷了大量的教程,一旦我認爲有了它,我無法獲得任何工作。 – wuno

回答

2

基本上,如果PHP變量真正持有的價值,數據確實存在裏面,然後通過使用這種代碼var assetPath ='<?php echo $assetPath; ?>';會很好。在測試到js環境之前,嘗試從服務器端發送變量發送到頁面以查看數據是否存在。而對於AJAX的東西,可以肯定的,請使用提供用於發送數據到服務器端點data屬性,請參見下面的例子:

var assetPath ='<?php echo $assetPath; ?>'; 
var num ='<?php echo $count; ?>'; 

$.ajax({ 
    type : 'POST', 
    url: assetPath,//<-- is it this came from variable assetPath?? 
    data : { 
    pageNumber : num, 
    } 
}).done(function(data) { 
    $("#productResults").html(data); 
}); 

,並在服務器端,假設assetpath持有價值process.php

$_POST['pageNumber']; //<-- retrieve data sent from ajax 

如果你echo $_POST['pageNumber'];上面的代碼後,那麼該值將提供內部成功/完成AJAX的塊:

.done(function(data) { 
    // data is a data sent from server side 
    $("#productResults").html(data); 
}); 
+1

如果當然,這隻會在這個JavaScript代碼在.php頁面本身,而不是在一個單獨的.js文件中。 – HaukurHaf

+0

@HaukurHaf:當然是mate,否則變量'assetPath'會打印出<?php echo $ assetPath; ?>'作爲一個字符串而不是像OP那樣的空字符串 –

+0

只是認爲這對其他人來說也是值得一提的,因爲他的腳本中沒有任何內容表明它不是*在獨立的.js文件中(它也可能已經)。 – HaukurHaf

0

簡單地把你的瓦爾到您$(document).ready(function(){

(function($) { 
$(document).ready(function(){ 

var assetPath ='<?php echo $assetPath; ?>'; 
var num ='<?php echo $count; ?>'; 

$('.pager-top,.pager-bottom').bootpag({ 
    total: assetPath, 
    page: 1, 
    maxVisible: 5, 
    leaps: true, 
    firstLastUse: true, 
    first: '←', 
    last: '→', 
    wrapClass: 'pagination', 
    activeClass: 'active', 
    disabledClass: 'disabled', 
    nextClass: 'next', 
    prevClass: 'prev', 
    lastClass: 'last', 
    firstClass: 'first' 
}).on("page", function(event, num){ 
    $.ajax({ 
      url: "assetPath?pageNumber="+num, 
      }).done(function(data) { 
      $("#productResults").html(data); 
      }); 
}); 
})(jQuery); 
}); 

希望這將工作:)

+1

如果當然,這隻會在這個JavaScript代碼是在.php頁面本身,而不是在一個單獨的.js文件中。 – HaukurHaf