while prochází různé hodnoty, ale Ajax dostane jen první hodnotu

hlasů
0

Já používám PHP AJAX projít a dostat výsledek, ale javascript bude trvat jen první hodnotu smyčky

Tady můj kód:

<?php     
      $sql = 'SELECT * from booking_master
      INNER JOIN   *****
      WHERE booking_master.user_id=:id';

      $query = $conn->prepare($sql);
      $query->bindParam(':id', $id);

      $query->execute();

      if($query->rowCount())
      {

           while($row11 = $query->fetch(PDO::FETCH_ASSOC))
           {

  ?> 
  <tr>
          <td> <?php echo $row11['user_name']; ?> </td> 
          <input type=hidden name=userid id=userid value=<?php echo $row11['user_id']; ?>>
          <input type=text value=<?php echo $row11['plot_id']; ?>  name=plotid id=plotid>

          <td> <?php echo $row11['auto-book-id'];?></td>
          <td> <?php echo $row11['plot_id'];?> </td>
          <td> <?php echo $row11['plot_name'];?></td>
          <td> <?php echo $row11['trans_date'];?></td>


          <td> <a href=#  onclick=functscheme() > Select Plot</a>

 </tr>
 <?php 
           }
      } 
 ?>

ajax kód:

 function functscheme()
 {
     var userid=document.getElementById('userid').value;
     var plotid=document.getElementById('plotid').value;

     alert(plotid);

ale v tom spiknutí vrátí pouze první hodnotu

Položena 20/10/2018 v 12:39
zdroj uživatelem
V jiných jazycích...                            


1 odpovědí

hlasů
0

getElementByIdvrátí pouze první prvek s tímto ID (ID, protože jsou určeny pouze pro použití na jeden prvek). Zkuste použít tříd místo.

V PHP:

<!-- These have the "class" attribute instead of "id" now -->
<input type="hidden" name="userid" class="userid" value="<?php echo $row11['user_id']; ?>">
<input type="text" value="<?php echo $row11['plot_id']; ?>"  name="plotid" class="plotid">

V JS:

// Get lists of HTML elements for inputs
// (selected by class)
var userIDElements = document.getElementsByClassName('userid');
var plotIDElements = document.getElementsByClassName('plotid');

// Array.from() converts the HTMLCollection to a normal JS Array
//   (this is necessary so we can use .map)
// .map(func) runs func on each element of the array, and returns a new
//  array with the results of that
// e.g. here, the function takes each <input> element found, and returns
//  its value, so now we have a list of values rather than a list of elements
var userIDs = Array.from(userIDElements).map(function (element) { return element.value; });
var plotIDs = Array.from(plotIDElements).map(function (element) { return element.value; });

Viz zde pro více informací o .map().

Edit: kód jsem dal předtím bylo špatné - sorry.

Odpovězeno 20/10/2018 v 15:43
zdroj uživatelem

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more