如何使用ajax、onchange事件、重新加载到同一页面制作表单

如何使用ajax、onchange事件、重新加载到同一页面制作表单,ajax,forms,session,onchange,Ajax,Forms,Session,Onchange,我研究这个已经有一段时间了,我不确定我的方法是否正确,因为我根据示例设置的每个表单都不能满足我的需要 我需要设置一个表单,该表单将: 从下拉菜单中选择时设置会话 不重新加载/刷新页面我已经读到使用AJAX可以解决这个问题 提交并保持在同一页面上会让人困惑,因为大多数AJAX示例都会将其发送到不同的process.php页面,该页面被认为是不可见的,但它不会保持在同一页面上,而是重定向 基本上,客户选择1到10的数量。如果他们选择2。。。它不会重新加载页面。。但它确实将会话[数量]设置为2。应该很

我研究这个已经有一段时间了,我不确定我的方法是否正确,因为我根据示例设置的每个表单都不能满足我的需要

我需要设置一个表单,该表单将:

从下拉菜单中选择时设置会话

不重新加载/刷新页面我已经读到使用AJAX可以解决这个问题

提交并保持在同一页面上会让人困惑,因为大多数AJAX示例都会将其发送到不同的process.php页面,该页面被认为是不可见的,但它不会保持在同一页面上,而是重定向

基本上,客户选择1到10的数量。如果他们选择2。。。它不会重新加载页面。。但它确实将会话[数量]设置为2。应该很简单。。。但我是否要将其发布到与表单相同的页面?或者发到不同的页面,它会以某种方式重定向

此外,我做了一个测试,每次都会将我的echo会话[quantity]粘贴到页面上,比如7、2、3、5等等,而不是替换它

下面的代码部分来自一个将性别作为下拉菜单的示例。我只希望下拉列表保持为选中的内容,并在提交按钮旁边回显所选内容。这是为了测试目的,以便我了解发生了什么。一旦发生这种情况,我就可以完成表格的其余部分。它目前不会回显任何内容

<? ob_start();?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<?php session_start(); ?>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Submit  Form with out refreshing page Tutorial</title>

<!-- JavaScript -->
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.0/jquery.min.js"></script>
<script type="text/javascript" >
$(function() {
$(".submit").click(function() {
var gender = $("#gender").val();
var dataString = 'gender=' + gender;
if(gender=='')
{
$('.success').fadeOut(200).hide();
$('.error').fadeOut(200).show();
}
else
{
$.ajax({
type: "POST",
url: "join.php",
data: dataString,
success: function(){
$('.success').fadeIn(200).show();
$('.error').fadeOut(200).hide();
}
});
}
return false;
});
});
</script>
<style type="text/css">
body{
}
.error{
color:#d12f19;
font-size:12px;
}
.success{
color:#006600;
font-size:12px;
}
</style>
</head>
<body id="public">
<div style="height:30px"></div>
        <div id="container">
                    <div style="height:30px"></div>

                    <form method="post" name="form">
                        <select id="gender" name="gender">
                        <option value="">Gender</option>
                        <option value="male">Male</option>
                        <option value="female">Female</option>
                        </select>
                        <div>
                        <input type="submit" value="Submit" class="submit"/>
                        <span class="error" style="display:none"> Please Enter Valid Data</span>
                        <span class="success" style="display:none"> Your gender is <?php echo $_SESSION['gender'];?></span>
                        </div>
                    </form>

        <div style="height:20px"></div>
        </div><!--container-->
</body>
</html>
<? ob_flush(); ?>
这是我的页面,其中的帖子名为join.php,在示例中称之为join.php,所以我现在使用它

<?php
session_start(); 
if($_POST)
{
$gender = $_POST['gender'];
$_SESSION['gender'] = $gender;
}
else
{ }
?>

jQuery还是纯js?什么服务器语言?我再次尝试使用一个下拉列表询问性别男性/女性的示例。仍然无法在此处正确粘贴代码。只是一个非常丑陋和基本的测试。。。您应该能够选择男性或女性,ajax会将所选内容发送到join.php,join.php会设置一个会话。然后在主窗体上,它应该与submit按钮旁边的会话相呼应。但我不明白为什么我在表单中添加onchange时,它什么都不做。我一事无成。我所需要的只是找到一个例子,说明如果用户从下拉菜单中选择表单,它将使用ajax/jquery或任何东西发送到php页面,设置为会话,那么在表单页面上,它实际上保留了他们所选择的选项,因为刚才设置了会话变量。我的菜单经常使用第一个或最后一个选项。不是实际选择的。