当我选择一个产品时,其ID将传递给下面的javascript代码

时间:2014-03-15 08:22:14

标签: javascript product

当我选择一个产品时,其ID将传递到下面的javascript代码

$(document).ready(function(){
  $("#nameinput_1").click(function(){
    var id = $('#nameinput_1').val();
    $.post("vfiles/data/ajaxload_buy.php",
    {
      id:id,     
    },

    function(html){
      $("#input_1").val(html);
 });    
  });
});

然后将在input_1

处产生价格
<input type="text" name="nameinput_1" id="nameinput_1"> <input type="text" name="input_1" id="input_1"> 

<input type="text" name="nameinput_2" id="nameinput_2"> <input type="text" name="input_2" id="input_2"> 

我如何编写nameinput_1代码,以便在我选择新产品时自动更改,而不会将其重写为nameinput_2(例如:i - &gt; i ++)。我在javascript中没有良好的基础,所以如果可能的话,请帮我计算input_1和input_2的总和。然后将总和分配给新的输入值。

档案ajaxload_buy.php

$ID= $_POST['id'];
$sql = "SELECT * FROM produce WHERE ID = '".mysql_real_escape_string($ID)."'";
$result = mysql_query($sql)
or die(mysql_error());

    $row = mysql_fetch_array($result);
    echo $row['price'];

我解决了这个问题: 我这样写是为了你没有权利

 $(document).ready(function(){
     $(".nameinput").click(function() {
        var input = this.name.replace('name', '');
        $.post("vfiles/data/ajaxload_buy.php", {id: this.value}, function(html) {
            $("#" + input).val(html);

             $(this).next().val(html);
             var sum = 0;
                $(".price").each(function() {
                        sum += parseFloat($(this).html());
                });
 **$("#export").val(sum);**

        });
    });
    });

如何在新输入中导出这些数据

    var sum = 0;
                    $(".price").each(function() {
                            sum += parseFloat($(this).html());
                    });
**$("#export").val(sum);**

我不明白值(sum)export = NaN

问题解决了

var sum = 0;
            $(".price").each(function() {
                    sum += Number(this.value);
            });

1 个答案:

答案 0 :(得分:0)

以下是一些建议:

首先,使用class而不是id,这样您就不需要复制代码了。做一些像$(&#34; .getprice&#34;)而不是$(&#34;#nameinput_1&#34;)并使用next()选择你需要的输入元素:

<input type="text" class="getprice" name="nameinput_1" id="nameinput_1"> <input type="text" name="input_1" id="input_1"> 

<input type="text" class="getprice" name="nameinput_2" id="nameinput_2"> <input type="text" name="input_2" id="input_2"> 

$(document).ready(function(){
  $(this).click(function(){
    var id = $(this).val();
    $.post("vfiles/data/ajaxload_buy.php",
    {
      id:id,     
    },

    function(html){
      $(this).next().val(html);
 });    
  });
});

其次,如果你确定只有两件事要加,那么根据你所做的事情,它很容易实现。但我还是建议你上课。让我们说'价格&#39;然后html将是:

<input type="text" class="getprice" name="nameinput_1" id="nameinput_1"> <input type="text" name="input_1" class="price" id="input_1">

<input type="text" class="getprice" name="nameinput_2" id="nameinput_2"> <input type="text" name="input_2" class="price" id="input_2"> 

然后,当您需要总结价格时,可以使用each执行此类操作:

    var sum = 0;
    $(".price").each(function() {
            sum += parseFloat($(this).html());
    });

如果您知道新输入的ID,那么它就像$(&#34;#id_of_the_input&#34;)一样简单.val(sum);