2011-12-15 46 views
0

这是我的ajax后如何确定哪些DIV /类按钮被点击的

<script language="JavaScript" type="text/javascript"> 
    var num = 1; 
    function ajax_post(){ 
    // Create our XMLHttpRequest object 
    var hr = new XMLHttpRequest(); 
    // Create some variables we need to send to our PHP file 
    var url = "javas.php"; 
    hr.open("POST", url, true); 
    // Set content type header information for sending url encoded variables in the request 
    hr.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); 
    // Access the onreadystatechange event for the XMLHttpRequest object 
    hr.onreadystatechange = function() { 
    if(hr.readyState == 4 && hr.status == 200) { 
     var return_data = hr.responseText; 
     document.getElementById("status").innerHTML = return_data; 
    } 
} 
// Send the data to PHP now... and wait for response to update the status div 
hr.send("num=" + (++num)); // Actually execute the request 
document.getElementById("status").innerHTML = "processing..."; 

} 
</script> 

现在我需要确定whitch类的按钮被点击了(在PHP)

<?php 
    //Getting posts from DB 
    $event1 = mysql_query("SELECT post,date,memid FROM postaction WHERE memid = '$id' ORDER BY date DESC LIMIT 5;"); 
    while ($row1 = mysql_fetch_array($event1)) 
    { 
     $event = $row1['post']; 
     $timeposted = $row1['date']; 
     $eventmemdata = mysql_query("SELECT id,firstname FROM users WHERE id = '$id' LIMIT 1"); 
     while($rowaa = mysql_fetch_array($eventmemdata)) 
     { 
      $name = $rowaa['firstname']; 
      $eventlist = "$event <br> $name"; 
    } 
     echo " <div id = 'eventer'> $timeposted <br>$eventlist</div> <input name='myBtn'   type='submit' value='increment' onClick='javascript:ajax_post();'> 
       <input name='lol' type='submit' value='dec' onClick='javascript:ajax_posta();'> 
       <div id = 'status'>lol</div>"; 
     echo "<br>"; 
    } 
?> 
</span> 
</div> 

单击该按钮时,将调用ajax函数,但是该函数正在第一个状态div中显示,而不是在该按钮被点击的div/class中显示。

回答

0

首先,你需要认识到,“ID”标签的属性应该是唯一的。因此,实现这一点的正确方法是区分ID,例如为他们附加一个唯一编号。有点儿像这样:

$i = 0; 
while ($row1 = mysql_fetch_array($event1)) 
{ 
    $i++; 

    ... 

    echo " ... <input type='submit' name='lol' value='dec$i' /> 
     <div id='status$i'>...</div>"; 
} 

然后,您可以检查你的命令后得到的数字(我知道这是原油)

0

使用jQuery查找w这个按钮已被点击。为您的按钮添加一个名称属性。

$().function({ 
     $("some_button").click() { 
     clicked_name = $(this).attr("name"); 
     } 
    }); 
+0

他们都是相同的按钮即时通讯试图找出它被点击的类别 – foshoeiyyy 2011-12-15 12:11:40

+0

而不是试图找出哪个类按钮被点击,试着找出哪个按钮本身是点击。你可以区分你的按钮,给他们每个独特的atrribute。它总是更好地找到确切的起点即你的按钮,比找出那个按钮位于哪里:) – rdsoze 2011-12-15 12:33:10

0

就可以更新一些相关数据的隐藏字段,并检查它在后..

0

,而不是

echo " <div id = 'eventer'> $timeposted <br>$eventlist</div> <input name='myBtn'   type='submit' value='increment' onClick='javascript:ajax_post();'> 
       <input name='lol' type='submit' value='dec' onClick='javascript:ajax_posta();'> 
       <div id = 'status'>lol</div>"; 
     echo "<br>"; 

使用

echo " <div id = 'eventer'> $timeposted <br>$eventlist</div> <input name='myBtn'   type='submit' value='increment' onClick='javascript:ajax_post();'> 
       <input name='lol' type='submit' value='dec' onClick='javascript:ajax_posta(this);'> 
       <div id = 'status'>lol</div>"; 
     echo "<br>"; 

和JavaScript中,你可以很容易地得到哪个被点击后使用整个对象收到它后,你可以我们e数据属性或使用索引