php
  • jquery
  • input
  • 2012-03-26 144 views 0 likes 
    0

    我有形式是這樣的:如何從不同類的多個輸入字段獲取值?

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

    當我KEYUP上得分[1] [ ],weight [1] []的值不會出現。 PLease幫助我,如何從不同類的多個輸入字段獲取值?

    +0

    的onkeyup得分獲得價值,如果你的體重有沒有價值,什麼是與PHP端得分乘以?一個空白字符串? – Joseph 2012-03-26 07:27:47

    回答

    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類工作;而代碼應該以任何方式工作,這種風格對我來說感覺更好。

    +0

    這是:'$(this).closest(「.group」)。find('。tiga input').val(data);'沒有工作。請幫幫我? – 2012-03-26 07:51:38

    +0

    @ N4tanata:這是一個涉及'$(this)'的錯誤,抱歉。請參閱最新的代碼。 – Jon 2012-03-26 07:57:24

    +0

    其工作。 thx你這麼多:) – 2012-03-26 08:24:58

    0

    你可以用這個

    score.each (function() { 
    console.log(this.value); 
    }); 
    
    相關問題