如何从不同类的多个输入字段中获取值?

时间:2012-03-26 07:22:18

标签: php jquery input

我有这样的形式:

  <div class="satu">
    <input type='text' size='1' maxlength='1' name='score[1][]' id='score[1][]'>
  </div>
  <div class="dua">
    <input type='text' size='1' maxlength='3' name='weight[1][]' id='weight[1][]'> %
  </div>
  <div class="tiga">
    <input type='text' size='5' name='weightscore[1][]' id='weightscore[1][]' disabled>
  </div>
  <div class="satu">
    <input type='text' size='1' maxlength='1' name='score[2][]' id='score[2][]'>
  </div>
  <div class="dua">
    <input type='text' size='1' maxlength='3' name='weight[2][]' id='weight[2][]'> %
  </div>
  <div class="tiga">
    <input type='text' size='5' name='weightscore[2][]' id='weightscore[2][]' disabled>
  </div>

这是jquery脚本:

 $('[id^="score"]').keyup(function() 
 {
   var score=$('[id^="score"]').val(); 
   var weight=$('[id^="weight"]').val(); 
   $.ajax({
   url: "cekweightscore.php",
   data: "score="+score+"&weight="+weight,
   success: 
   function(data)
   {
     $('[id^="weightscore"]').val(data);
   }//success
   });//ajax 
 });    

这是php代码:

<?php
include "connection.php";

$score = $_GET['score'];
$weight = $_GET['weight'];
$totalweightscore=(($weight * $score )/ 100);
echo"$totalweightscore";
?>

当我对得分[1] []进行加密时,权重[1] []的值不会出现。请帮助我,如何从不同类的多个输入字段中获取值?

2 个答案:

答案 0 :(得分:1)

您的代码适用于第一组输入元素的 。对于第二组元素,它将,因为使用.val,您将获得“匹配元素集合中第一个元素的当前值”。因此,当您在score[2]上进行加密时,JS代码实际上会发送score[1]weight[1]的值,这些值可能为空。

要解决这个问题,最简单的方法是在每组项目周围包含一个元素,以便在触发keyup时轻松定位“关联”权重元素,如下所示:

<div class="group">
  <div class="satu"><input type='text' name='score[1][]' id='score[1][]'></div>
  <div class="dua"><input type='text' name='weight[1][]' id='weight[1][]'> %</div>
  <div class="tiga"><input type='text' name='weightscore[1][]' id='weightscore[1][]' disabled></div>
</div>

<div class="group">
  <div class="satu"><input type='text' name='score[2][]' id='score[2][]'></div>
  <div class="dua"><input type='text' name='weight[2][]' id='weight[2][]'> %</div>
  <div class="tiga"><input type='text' name='weightscore[2][]' id='weightscore[2][]' disabled></div>
</div>

代码看起来像

<script type="text/javascript">
    $('.satu input').keyup(function () {
        var $satuInput = $(this);
        var score = $satuInput.val();
        var weight = $satuInput.closest(".group").find('.dua input').val();
        $.ajax({
            url: "cekweightscore.php",
            data: "score=" + score + "&weight=" + weight,
            success: function (data) {
                $satuInput.closest(".group").find('.tiga input').val(data);
            } //success
        }); //ajax 
    });
</script>

我还改变了jQuery选择器来处理HTML中的类而不是元素id;虽然代码应该以任何一种方式工作,但这种风格对我来说感觉更好。

答案 1 :(得分:0)

你可以用这个

获得价值
score.each (function () {
 console.log(this.value);
});