javascript按键事件和PHP

时间:2013-12-27 06:01:34

标签: javascript php

HTML code:

<td><input type="text"  name="flat[]" class="" value="<?php echo $row_pdetails["flat"]; ?>" /></td>
<td><input type="text"  name="new_price[]" class="" value="<?php echo   $row_pdetails["price"]; ?>" /></td>
<td><input type="text"  name="org_price[]" class="" value="<?php echo     $row_pdetails["org_price"]; ?>" readonly/></td>
<td><input type="submit"  name="save" value="save"/></td>

PHP代码:

<?php
  if(isset($_POST["save"]))
  {
     for($i=0;$i<count($_POST["org_price"]); $i++)
     {
        $org_price=$_POST["org_price"][$i]; 
        $new_price=$_POST["new_price"][$i];
        mysql_query("update tb_party_rate_entry set price='$new_price' where   (party_id='$p_id' && org_price='$org_price')");
     }
  }

在这段代码中,我使用while循环从数据库中获取new_price[]org_price[]的值,并且为了在数据库中更新这些值,我使用了for循环,如我的PHP代码。

现在我想要的是每当我在flat[]文本框中输入任何值时,应使用keypress事件同时在new_price[]文本框中输入相同的值。当我在第一行的平价中输入值时,应该在第一行的new_price[]中输入,当我在第二行的平价中输入值时,应该在第二行的new_price[]中输入,并在按键事件中输入。 / p>

请帮忙。

3 个答案:

答案 0 :(得分:0)

在此测试:http://jsfiddle.net/qsDn5/3/
HTML

 <div>
    <tr>
        <td>flat1:<input type="text" name="flat[]" class="flat" value=""/></td>
        <td>price1:<input type="text" name="new_price[]" class="new_price" value=""/></td>
        <td><input type="text" name="org_price[]" class="" value=""</td>
    </tr>
</div>
<div>
    <tr>
        <td>flat2:<input type="text" name="flat[]" class="flat" value=""/></td>
        <td>price2:<input type="text" name="new_price[]" class="new_price" value=""/></td>
        <td><input type="text" name="org_price[]" class="" value=""</td>

    </tr>
</div>
<p><input type="submit" name="save" value="save"/></p>

<强> Jquery的

$(document).ready(function(){
    $('.flat').on('keyup',function(e) {
       $( this ).siblings(".new_price").eq(0).val ( $(this).val() );
    });
});

答案 1 :(得分:0)

你应该在flat []上使用onchange事件并因此设置new_price []的值。

这样的东西
$('input[name="flat[]"]').on('keyup',function(e) {
   $( this ).siblings('input[name="new_price[]"]:first').val ( $(this).val() );
});

注意: 我使用了兄弟姐妹,因为我假设你将拥有相同输入名称的不同行,这样你只会更新正确的元素

答案 2 :(得分:0)

FIDDLE (see demo)

试试这个:

请注意,我在html中添加了rel属性,并为textbox创建了唯一ID。每个文本框都有唯一的ID。

<?php 
$i = "1";
while(//$row=...){ 
?>
<td><input type="text"  name="flat[]" id="flat<?php echo $i;?>" rel="<?php echo $i;?>" class="flat" value="<?php echo $row_pdetails["flat"]; ?>" /></td>
<td><input type="text"  name="new_price[]" id="newprice<?php echo $i;?>" rel="<?php echo $i;?>"  class="new_price" value="<?php echo   $row_pdetails["price"]; ?>" /></td>
<td><input type="text"  name="org_price[]" id="orgprice<?php echo $i;?>" rel="<?php echo $i;?>" class="org_price" value="<?php echo $row_pdetails["org_price"]; ?>" readonly/></td>
<?php $i++;} ?>
<td><input type="submit"  name="save" value="save"/></td>

JQuery:

当用户尝试在平面文本框中输入某些内容时,我们得到它rel并且它的值。使用我们发现的相关newprice文本框的rel值。

$(document).on('keyup','.flat',function(){
    var rel = $(this).attr('rel');
    var flatvalue = $(this).val();
    $("#newprice"+rel).val(flatvalue);
});