将PHP变量传递给Ajax函数将变量JS转换为PHP

将PHP变量传递给Ajax函数将变量JS转换为PHP

问题描述:

我在理解将信息从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

基本上,如果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'会打印出'作为一个字符串而不是像OP那样的空字符串 –

+0

只是认为这对其他人来说也是值得一提的,因为他的脚本中没有任何内容表明它不是*在独立的.js文件中(它也可能已经)。 – HaukurHaf

简单地把你的瓦尔到您$(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