Получить значения из цикла php и умножить эти значения на keyup

#javascript #php #foreach

#javascript #php #foreach

Вопрос:

У меня есть цикл PHP, созданный динамически с двумя текстовыми полями и одним столбцом результатов.

Что мне нужно, так это просто умножить значения, вводимые в первые два поля, и показать результат в ближайшем окне результатов.

Цикл PHP

 <?php
 $sql=$db->query("SELECT * FROM calc");
 foreach($sql as $row)
 {
  ?>
<div class="calc">
 <input type="text" id="txt1id<?= $row['id'] ?>" onkeyup="multiple()">
 <input type="text" id="txt2id<?= $row['id'] ?>" onkeyup="multiple()">
 <input type="text" id="resultid<?= $row['id'] ?>" title="Result shows here automatically">
</div>
<?php } ?> // loop ends here.
  

И скрипт

 <script>
 function multiple()
 { 
    // how to get two different variables like this with different id to multiple ?
    var firstBox = parseInt(document.getElementById(firstid).value);
    var secondBox = parseInt(document.getElementById(secondid).value);


 }
</script>
  

Комментарии:

1. где вам нужны значения php? или где находится цикл php?

2. div class='calc' создается циклом php, таблица php содержит другие значения, но не включена здесь, здесь идентификаторы получены из базы данных .. например txt1id1,txt2id1 и т.д.

3. можете ли вы также поделиться кодом php?

4. пожалуйста, проверьте изменения

Ответ №1:

Передайте идентификатор строки функции следующим образом

 <div class="calc">
 <input type="text" id="txt1id<?= $row['id'] ?>" onkeyup="multiple(<?= $row['id'] ?>)">
 <input type="text" id="txt2id<?= $row['id'] ?>" onkeyup="multiple(<?= $row['id'] ?>)">
 <input type="text" id="resultid<?= $row['id'] ?>" title="Result shows here automatically">
</div>
  

И изменить в JS, как показано ниже

 <script>
 function multiple(rowid)
 { 
    var firstBox = parseInt(document.getElementById("txt1id" rowid).value);
    var secondBox = parseInt(document.getElementById("txt2id" rowid).value);
 }
</script>
  

Комментарии:

1. var secondBox = parseInt(document.getElementById("txt1id" rowid).value); , txt1id должно быть txt2id .. верно?

2. Также проверьте rowid в консоли внутри функции console.log("Row id :" rowid);

3. вы отлично справились и быстро .. я проверю