2012-11-30 157 views
0

我很难过这个。我将通过Onclick函数获得未知数量的隐藏和未隐藏数据(取决于用户在数据库中的信息量)。当每个unhidden div被点击时,我通过AJAX传递它们的值,并从php文件中获取一些文本。需要帮助Ajax/Javascript

 function selectProduct(index) { 
    var option = document.getElementById('sel'+index).value; 
     var queryStringOne = "?option="+option; 
     http.open("GET", "product.php" + 
          queryStringOne, true); 
     http.onreadystatechange = getHttpResOne+index; 
      http.send(null); 
    } 

    function getHttpResOne(index) { 

     if (http.readyState == 4) { 
     resOne = http.responseText; // These following lines get the response and update the page 
    document.getElementById('prohidden'+index).innerHTML = resOne;  
    } 
} 

HTML

<div id="sel1" value="sel1" onClick="selectProduct(1); return false;">Select Item</div> 
    <div id="prohidden1" class="sel"></div> <!-- hidden --> 
    <div id="sel2" value="sel2" onClick="selectProduct(2); return false;">Select Item</div> 
    <div id="prohidden2" class="sel"></div><!-- hidden --> 

我需要从每个DIV点击响应文本,以取代它下面隐藏的div权利。我无法将(索引)传递给getHttpRequestOne()函数。

回答

1

您可以随时将自定义属性添加到本机对象。这可能不是最好的方法。但你可以试试这个。

function selectProduct(index) { 
    var option = document.getElementById('sel'+index).value; 
    var queryStringOne = "?option="+option; 
    http.open("GET", "product.php" + 
       queryStringOne, true); 
    http.onreadystatechange = getHttpResOne; 
    http.myCustomValue = index; 
    http.send(null); 
} 

function getHttpResOne() { 
    if (http.readyState == 4) { 
    resOne = http.responseText; // These following lines get the response and update the page 
    var index = http.myCustomValue; 
    document.getElementById('prohidden'+index).innerHTML = resOne;  
    } 
} 
+0

谢谢你,我想通了。这有帮助! – user1764058

+0

;)................ –