2011-08-12 148 views
0

所以,我运行这个javascript。此代码获取由cart.php生成的html将php var传递给javascript

$.ajax({ 
    type: "GET", 
    url: "/cart/cart.php", 
    async: false, 
    dataType: "html", 
    success: function(html){ 
      $('#cart_content').html(html);   
    } 

问题!如何获得cart.php中的变量的值?

我希望是这样的:$('#cart_content').html($myvar);

+1

我有一种感觉,你不是熟练的Javascript和异步编程... –

+0

你的问题是真的很难理解,你可能想要重新修改它.. – PPrice

+0

在很高的水平,你可能想看看转换成JSON。 –

回答

3

个人而言,最简单的方法是返回json,或者直接回显您想返回的数据。如果你做的JSON,改变数据类型为JSON,然后,在cart.php, echo json_encode(array('varname'=>$myvar)); 在你的成功的功能,你就可以打电话给该变量:$('#cart_content').html(html.varname);

如果你选择去简单路径,在cart.php上,只是回显数据。你的成功函数将它存储为html。

+0

是的!谢谢 ! –

-1

如果你想将数据传递到服务器端脚本“cart.php”然后把它作为查询参数:

$.ajax({ 
    type: "GET", 
    url: "/cart/cart.php?myvar=$myvar", 
    async: false, 
    dataType: "html", 
    success: function(html){ 
      $('#cart_content').html(html);   
    } 
+0

他想将PHP变量值传递给处理程序,而不是相反。 –

+0

我认为OP想要的是相反的:从PHP发送数据到JS。 JSON浮现在脑海。 –

+1

我不认为你理解这个问题。 –

0

车。 PHP可以返回你喜欢的任何东西。它不一定是HTML。您可以只返回变量的值,或者将其发送回JSON对象以及结果的其余部分。

0

你不能那样做。您可能需要改为parse it as xml

cart.php将返回类似:

[...] 

echo '<var>My Variable</var>'; 

echo '<html><![CDATA[ <p>Html stuff</p> ]]></html>'; 

然后您的JavaScript可能会像

$.ajax({ 
    type: "GET", 
    url: "/cart/cart.php", 
    async: false, 
    dataType: "html", 
    success: function(response){ 

     var xmlDoc = $.parseXML(response), 
     $xml = $(xmlDoc), 
     $var = $xml.find("var"); // This is your variable 

     $('#cart_content').html($xml.find("html"));  
    } 
}); 
0

像这样的事情出现在脑海:

$('.add_to_cart').click(function(){ 
    var _item = this.id; // say you had <div id="123" class="add_to_cart"> where the item id = 123. 
    $.ajax({ 
     type: "GET", 
     url: "/cart/cart.php?add="+ _item, 
     dataType: "html", 
     success: function(data){ 
      $('#cart_content').html(data);   
     } 
    }); 
}); 

cart.php文件:

$_SESSION['cart_contents'][] = $_GET['add']; 
$tmp = ''; 
foreach($_SESSION['cart_contents'] as $item) 
{ 
    $tmp.= '<div class="cart_item">' . $item['whatever'] . '</div>'; 
} 
echo $tmp; // this is what is sent back to the ajax `success` function 

这将使你点击“添加到购物车”按钮,并告诉你的cart.php页面添加它和新填充的购物车中的内容返回到DOM容器#cart_content