获取<select>的值而无需使用php </select>在同一页面上提交

时间:2013-09-04 09:24:12

标签: php javascript jquery html

希望有人可以帮助我.. 我使我的程序更简单,以便每个人都能理解.. 我希望我的程序获得没有提交的值,我知道这只能通过javascript或jquery来完成所以我使用onChange,但我想要的是当我选择一个选项时,值应该立即传递给它页面,但使用PHP ..

<select id="id_select" name="name" onChange="name_click()">
<option value="1">one</option>
<option value="2">two</option>
</select>

<script>
function name_click(){
value_select = document.getElementById("id_select").value;
}
</script>

然后我应该在post方法中将value_select传递给php ..我不知道我会怎么做..请帮助我..

4 个答案:

答案 0 :(得分:3)

如果不提交页面,则无法使用PHP执行此操作。 PHP代码在服务器上执行,然后在浏览器中呈现页面。当用户然后在页面上执行任何操作(例如,选择下拉列表中的项目)时,不再有PHP。将此代码导入PHP的唯一方法是提交页面。

可以做的是使用javascript来获取值 - 然后激活AJAX请求到传递所选值的php脚本,然后处理结果,例如

$(document).ready(function() {
    $('#my_select').on('change', do_something);
});

function do_something() {
    var selected = $('#my_select').val();
    $.ajax({
        url:        '/you/php/script.php',
        type:       'POST',
        dataType:   'json',
        data:       { value: selected },
        success:    function(data) {
            $('#some_div').html(data);
        }
    });
}

使用此代码,只要所选选项在下拉列表中发生更改,POST请求就会触发到您的php脚本,并将所选值传递给它。然后,返回的HTML将被设置为ID为some_div的div。

答案 1 :(得分:0)

不确定..但我想ajax就是你需要的......

<script>
function name_click(){
  value_select = $("#id_select").val();
  $.post('path/to/your/page',{"value":value_select},function(data){
     alert('done')
 })

}
</script>

PHP

$value=$_POST['value']; //gives you the value_select data

答案 2 :(得分:0)

我的建议是jquery。试试这个

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js">
<script>
    $(document).ready(function(){
        $("#id_select").change(function(){
            var url = 'http:\\localhost\getdata.php'; //URL where you want to send data
            var postData = {'value' : $(this).value};
            $.ajax({
               type: 'POST',
                url: url,
                data : postData,            
                dataType: 'json',
                success: function(data) {
                   //
                },
                error: function(e) {
                   console.log(e.message);
                }
            });
        })
    })
</script>

在getdata.php中

<?php
 var $value = $_POST['value'];

// you can do  your logic

?>

答案 3 :(得分:0)

发布ajax,Alex G告诉你(+1),然后用PHP处理帖子。您可以在Javascript中定义一个回调,该回调将在页面响应时运行。