如何使用ajax post请求显示这样的结果值?

时间:2014-10-04 15:58:58

标签: javascript jquery html ajax

如何显示这样的结果值?

将select标签更改为Eg:<option value="3">THREE</option>

我想在<span id="myplace2"></span>

中显示结果

但是如果改变选择Eg:<option value="4">THREE</option>

我想在<span id="myplace4"></span>

中显示结果

我该怎么做?

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

<form id="form-id" method="post" action="" ENCTYPE = "multipart/form-data" onsubmit="return checkform(this);">
    <select id="number" name="number" OnChange="fn_test1()" >
      <option selected="" value="">SELECT</option>
      <option value="1">ONE</option>
      <option value="2">TWO</option>
      <option value="3">THREE</option>
      <option value="4">FOUR</option>
    </select>
<?PHP
    for ($i=1;$i<=4;$i++)
        {
?>
    <span id="myplace<?PHP echo $i; ?>"></span><br>
<?PHP
        }
?>
</form>

<script>
function fn_test1() {
    $('#myplace'+ $(data).find("#number").val()).hide();
    setTimeout(function(){
        $.ajax
        (
            {
                url: 'test_mm16.php',
                type: 'POST',
                data: $('#form-id').serialize(),
                cache: false,
                success: function (data) {
                    $('#myplace'+ $(data).find("#number").val()).show();
                    $('#myplace'+ $(data).find("#number").val()).html(data);
                }
            }
        )
    }, 2000);
}
</script>

2 个答案:

答案 0 :(得分:1)

您必须使用jquery才能检索所选项的值。您的代码可能是:

<script type="text/javascript">
function fn_test1() {
   var selected = $("#number option:selected").val(); //Get the value of selected item (like '1', '2');
   setTimeout(function() {
        $.ajax(
           {
            //Put here url, type, ...
            success: function(data) {
                $("#myplace" + selected).show();
                $("#myplace" + selected).html(data); //Put the output inside the right element
           }
        })
   }, 2000);
}
</script>

答案 1 :(得分:0)

当用户从下拉框中更改选择时,您想要更改页面部分的可见性吗?为什么你需要ajax?

function fn_test1() {
    $('.mp').hide();
    $('#myplace'+ $(data).find("#number").val()).show();
}

然后将class="mp"添加到myplace <span>个元素。

除非您计划在跨度中添加动态内容。在那种情况下:

  • 您似乎对主页和ajax调用使用相同的PHP脚本,这是非常规的 -​​ ajax响应应采用数据交换格式,如XML或JSON,而不是HTML。
  • data变量仅在成功处理程序中声明,因此第一次使用它并不像您想要的那样工作。
  • 如果用户想要刷新跨度的内容而不刷新整个页面或更改选择,该怎么办?