To jest mój post ajax

<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>

Teraz muszę określić, która klasy przycisk został kliknięty (w 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>

Po kliknięciu przycisku funkcja AJAX jest wywoływana, jednak funkcja jest wyświetlana w pierwszym status DIV, a nie w klasie Div / klasa kliknięto przycisk.

0
foshoeiyyy 15 grudzień 2011, 15:17

4 odpowiedzi

Najlepsza odpowiedź

Początkowo musisz zdać sobie sprawę, że atrybut "ID" znacznika ma być wyjątkowy. Tak więc prawidłowe podejście do wdrożenia tego byłoby odróżnienie IDS dla Exemple dołącząc do nich unikalny numer. Kinda tak:

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

   ...

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

Następnie możesz sprawdzić numer, który otrzymasz po poleceniu (wiem, że jest to surowe)

0
Erbureth says Reinstate Monica 15 grudzień 2011, 11:32

Użyj jQuery, aby dowiedzieć się, który przycisk został kliknięty. Dodaj atrybut nazw na swój przycisk.

    $().function({
      $("some_button").click() {
      clicked_name = $(this).attr("name");
      }
    });
0
rdsoze 15 grudzień 2011, 11:21

Możesz zaktualizować ukryte pole z odpowiednimi odpowiednimi danymi i sprawdzić go w słupku ..

0
Md Jawed Shamshedi 15 grudzień 2011, 11:24

Zamiast

 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>";

Posługiwać się

  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>";

Oraz w JavaScript możesz łatwo uzyskać, który kliknął, używając całego obiektu po otrzymaniu go, możesz użyć danych - atrybuty lub użyj indeksu

0
Hatem Ahmed 26 styczeń 2017, 09:36