得到<;选择>;而无需使用php在同一页面上提交


get the value of <select> without submitting on the same page using php

希望有人能帮助我。。我把我的程序做得更简单了,这样每个人都能理解。。我希望我的程序在不提交的情况下获得的值,我知道这只能通过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方法中将valueselect传递到php中。。我不知道该怎么做。请帮帮我。

如果不提交页面,就无法使用PHP来完成此操作。PHP代码在浏览器中呈现页面之前在服务器上执行。当用户在页面上执行任何操作(例如,在下拉列表中选择一个项目)时,就不再有PHP了。将这些代码输入PHP的唯一方法是提交页面。

然而,可以使用javascript获取值,然后向传递所选值的php脚本发出AJAX请求,然后处理结果,例如

$(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);
        }
    });
}

有了这段代码,每当下拉列表中所选的选项发生变化时,就会向php脚本发出POST请求,并将所选的值传递给它。然后,返回的HTML将被设置到ID为some_div的div中。

不确定。。但我想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

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

我的建议是使用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
?>