获取选择值而不刷新表单

时间:2015-08-23 01:52:07

标签: php jquery ajax select

使用此代码,我可以看到每个选项值已打印,但每次选择选项时页面都会刷新。服务器正确获取发布数据,所以我只需要在不刷新的情况下完成。 谢谢。问候。

<form action="" method="post">
   <select name="day" onchange="this.form.submit();">
      <option>Please select a date</option>
      <option value="Mon">Monday</option>
      <option value="Tue">Tuesday</option>
      <option value="Wed">Wednesday</option>
      <option value="Thu">Thursday</option>
      <option value="Fri">Friday</option>
   </select>
</form>
<script type="text/javascript">
   $('#day').change(function() 
   {
      $.ajax({
           type: 'post',
           url: "day.php",
           data: $("form.day").serialize(),
       });
        return false;
   });
</script>
<?php 
include 'day.php'; ?>

day.php

<?php
$day = $_POST['day'];
echo $day;
?>

3 个答案:

答案 0 :(得分:0)

更新onchange以调用Javascript函数,该函数将数据复制到另一个表单中的隐藏字段,并使用Ajax来提交该字段。

或者,您也可以直接通过Ajax提交数据,而无需额外的表格,但对于可能以高频率完成的事情,我发现尽可能减少带宽是有用的。

答案 1 :(得分:0)

  
    

我认为你需要这个:

  

e.preventDefault();

//添加你的id =&#34;日&#34;

 <select name="day" id="day" onchange="this.form.submit();">
        $('#day').change(function(e) 
           {
             e.preventDefault();
              $.ajax({
                   type: 'post',
                   url: "day.php",
                   data: $("form.day").serialize(),
               });
                return false;
           });

答案 2 :(得分:0)

我可以看到<p id=..>打印的每个选项值而不刷新页面。但是帖子数据没有传递给day.php ..

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
<html>
<head>
<script>
    function postSelection(selectObject) {
        var day = window.dateForm.day.value = selectObject.options[selectObject.selectedIndex].value;
        var dataString = "day=" + day;

        $.ajax ({
        type:"post",
        url: "day.php",
        data:dataString,
        success: function (response) {
            $("#list").html(response);

        }
      });
        return false;
    }
</script>
</head>
<body>

<form name="displayForm">
<select name="day" onchange="return postSelection(this)">
<option>Please select a date</option>
<option value="Mon">Monday</option>
<option value="Tue">Tuesday</option>
<option value="Wed">Wednesday</option>
<option value="Thu">Thursday</option>
<option value="Fri">Friday</option>
</select>
</form>

<form action="" method="post" name="dateForm">
<input type="hidden" name="day">
</form>

<?php include 'day.php'; ?>
</body>
</html>