Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/256.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/436.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
当组合框PHP中的值更改时更改价格_Php_Javascript_Jquery - Fatal编程技术网

当组合框PHP中的值更改时更改价格

当组合框PHP中的值更改时更改价格,php,javascript,jquery,Php,Javascript,Jquery,我的代码有问题。我想在组合框的值更改时更改价格,但在while循环处理程序中,只处理第一个表行 <script type="text/javascript"> $(document).ready(function () { $('#size').change(function () { //alert("aaa"); var x = $('#size').attr('value'); //

我的代码有问题。我想在组合框的值更改时更改价格,但在while循环处理程序中,只处理第一个表行

<script type="text/javascript">
    $(document).ready(function () {
        $('#size').change(function () {
            //alert("aaa");
            var x = $('#size').attr('value');
            //alert(x);
            $.ajax({
                type: "POST",
                url: 'sizeChange.php',
                data: 'size =' + size,
                success: function (data) {
                    alert(data);
                }
            })
        });
    });
</script>



<div id="price">
    <table border="1" width="200px">
     <tr>
        <td> Size </td>
        <td> Product</td>
        <td>Price</td>
     </tr>
    <?
       mysql_connect("localhost","root","") or die(mysql_error()); 
       mysql_select_db("test") or die(mysql_error());
       $query = mysql_query("select * from pricetest");
       if(!$query)
         { die(mysql_error());}
         else
        {
         while($row = mysql_fetch_array($query))
          {
            echo "<tr> ";
                ?>
             <td>
                 <select name="size" id="size">
                   <option value="1">1</option>
                   <option value="2">2</option>
                    <option value="3">3</option>
                  </select>
             </td>
             <td> <? $row['pd_name']; ?> </td>
             <td> <? $row['price']; 

                    }
                }?>
             </td>
        </tr>
      </table>
</div>

$(文档).ready(函数(){
$('#size')。更改(函数(){
//警报(“aaa”);
var x=$('#size').attr('value');
//警报(x);
$.ajax({
类型:“POST”,
url:'sizeChange.php',
数据:“大小=”+大小,
成功:功能(数据){
警报(数据);
}
})
});
});
大小
产品
价格
1.
2.
3.
我可能做错了什么?

您可以使用
var x=$('#size').val()
而不是
var x=$('#size').attr('value')

在ajax中也以
data:'size='+x
的形式发送数据。

这是因为所有元素都具有相同的id(
size

$(document).ready(function () {
    $('#size').change(function () {
        //alert("aaa");
        var x = $('#size').attr('value'); alert(x);
        //alert(x);
        $.ajax({
            type: "POST",
            url: 'getsize.php',
    data: 'size='+x,
            success: function (data) {
                alert(data);
            }
        })
    });
});
更改您的php代码:

$i = 1;
while($row = mysql_fetch_array($query))
{
    echo "<tr id='row".$i."'> ";
            ?>
     <td>
             <select name="size" class="size_dd" id="<?php echo $i ?>" >
                 <option value="1">1</option>
                 <option value="2">2</option>
                    <option value="3">3</option>
                </select>
     </td>
     <td class="pd_name" > <? $row['pd_name']; ?> </td>
     <td class="price" > <? $row['price']; ?> </td>
     <?php $i++ ?>
}
$i=1;
while($row=mysql\u fetch\u array($query))
{
回声“;
?>
}
并将JS更改为如下内容:

<script type="text/javascript">
    $(document).ready(function () {
        $('.size_dd').change(function () {
            //alert("aaa");
            var size = this.value,
                                id = this.value;
            //alert(x);
            $.ajax({
                type: "POST",
                url: 'sizeChange.php',
                data: 'size =' + size,
                success: function (data) {
                    $('tr#row td.pd_name').html(data['pd_name']);
                    $('tr#row td.price').html(data['price']);
                }
            })
        });
    });
</script>

$(文档).ready(函数(){
$('.size_dd')。更改(函数(){
//警报(“aaa”);
变量大小=此值,
id=该值;
//警报(x);
$.ajax({
类型:“POST”,
url:'sizeChange.php',
数据:“大小=”+大小,
成功:功能(数据){
$('tr#row td.pd#u name').html(数据['pd#u name']);
$('tr#row td.price').html(数据['price']);
}
})
});
});

Ohh!!!对不起,伙计,但真正的问题不是这样。实际上,当我运行这段代码时,jquery和ajax正在工作,但只使用显示在第一个表行()中的ComboBox值。但是,当我使用位于第二个tr中的combobox运行它时,jquery和ajax不起作用。请告诉我如何解决它。谢谢你,伙计,但是现在我无法在jquery代码中获得price和name的值来将其转移到其他页面。我使用了var price=$('.pd_name').attr('value');有几个字段的类为
.pd\u name
,因此您必须获取父
tr
.pd\u name
单元格
$(this).最近('tr')。查找('td.pd\u name')