获取<select>的值而无需提交和刷新页面

时间:2015-08-22 16:46:01

标签: php jquery ajax select

我正在测试这个并且我无法使它工作。 因为我正在购买我列出购买产品的购物车,我必须使用下拉列表更改每个产品的数量(&lt; select&gt;)并立即更新价格。 请帮我。 谢谢和最好的问候。     &lt; script src =“https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js”&gt; &LT; /脚本&GT;     &lt; select id =“qty”name =“select”onChange =“select()”&gt;     &lt; option value =“1”&gt; One&lt; / option&gt;     &lt; option value =“2”&gt;两个&lt; / option&gt;     &lt; option value =“3”&gt; Three&lt; / option&gt;     &lt; option value =“4”&gt;四&lt; / option&gt;     &LT; /选择&GT;     &lt; script type =“text / javascript”&gt;     function select(){         var selected = $('#qty')。val();         $就({        url:“tt.php”,        键入:“POST”,//根据您的要求,您可以将其设置为GET / PUT等        数据:{           paramName:$(“select”)。val(); //这将从下拉列表中获取所选值        },        成功:function(){          警报(“提交的数据”);        }     });     }     &LT; /脚本&GT;     &LT; PHP     包括'tt.php'; (它包含$ value = $ _ POST ['select']; echo $ value;)     ?&GT;

2 个答案:

答案 0 :(得分:0)

简单的JavaScript解决方案,打开网络选项卡并检查传出请求

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"> </script>

    <select id="qty" name="select">
        <option value="1">One</option>
        <option value="2">Two</option>
        <option value="3">Three</option>
        <option value="4">Four</option>
    </select>

    <script type="text/javascript">
    var select = document.querySelector('#qty');
    select.onchange = function(event){
        console.log(event); //proof that it makes http request on change
        var value = event.target.value;
        $.ajax({
           url: "tt.php",
           type: "POST",
           data: {
               paramName: value
          }
        }).done(function() {
           alert( "success" );
        }).fail(function() {
            alert( "error" );
        });
    }
    </script>
    <?php 
       include 'tt.php';
       (It contains $value=$_POST['select']; //im not php fan, but i guess this should be "paramName", not sure!
       echo $value;)
    ?>

这里发生了两件事 您订阅了选择更改事件,并使用&#34; paramName&#34;传递POST数据。属性, 但是您的服务器代码需要FORM Data,并带有select属性。

答案 1 :(得分:0)

更改onChange="select()"onChange="select(this.value)"并声明您的select()函数select(selected),这样您就可以删除var selected = $('#qty').val();,然后更改paramName: $("select").val();

paramName: selected

另外,你没有打电话给&#39;选择&#39; post数组中的变量? 将paramName:selected更改为:

select:selected