将参数传递给函数时,div onclick不起作用

时间:2013-10-08 11:31:00

标签: javascript php html

我有以下div:

echo '<div class="product_a" href="#" onclick="loadXMLDocprod("'.$data['num_prod'].'")">
<div clas="list_products"><table><tr><td style="max-width:380px; min-width:380px; text-align:left;"><strong>'.$data['designation'].'</strong></td>
<td><div class="status"><div class="mini-counts">Price : '.$data['prix_vente'].'$</div></div></td></tr></table>
<table><tr><td style="max-width:370px; min-width:370px; text-align:left;"><div class="post-thumb"><img src="'.$smallimg.'" alt="Top - Style 1" /></div></td><td><div class="views"><div class="mini-counts">'.$vu.'</div><div>Views</div></div></td>
<td><div class="votes"><div class="mini-counts">'.$data['qte_vendu'].'</div><div>Solde</div></div></td>
<td><div class="status"><div class="mini-counts">'.$qte.'</div><div>available</div></div></td></tr></table></div>
</div>';

我想在点击<div>后加载另一个PHP页面。这是我正在使用的脚本:

function loadXMLDocprod(num_pro) {
    var xmlhttp;
    var page;
    if (window.XMLHttpRequest) { // code for IE7+, Firefox, Chrome, Opera, Safari
        xmlhttp = new XMLHttpRequest();
    } else { // code for IE6, IE5
        xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
    }
    xmlhttp.onreadystatechange = function () {
        if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
            document.getElementById("right").innerHTML = xmlhttp.responseText;
        }
    }
    page = 'product_o.php?num_prod=' + num_pro;
    alert(page);
    xmlhttp.open("GET", "page", true);
    xmlhttp.send();
}

感谢您的帮助

2 个答案:

答案 0 :(得分:0)

更改此行:

xmlhttp.open("GET","page",true);

到此:

xmlhttp.open("GET",page,true);

答案 1 :(得分:0)

正如您使用jQuery标记了这个问题,这是一个避免使用过时的on-属性和$.load()的实现:

echo '<div class="product product_a" href="#" data-num-prod="'.$data['num_prod'].'">" '
     // and so on...
$('.product').click(function(e) {
    e.preventDefault();
    $('#right').load('product_o.php', { 'num_prod' : $(this).data('num-prod') });
});