0

私はこれをしばらく研究してきましたが、例に従って設定したすべてのフォームが必要なことを実行しないため、これが正しい方法であるかどうかわかりません。

次のようなフォームをセットアップする必要があります。

  • ドロップダウン メニューから選択したときにセッションを設定する

  • ページをリロード/更新しない(AJAXを使用するとこれが解決することを読みました)

  • 送信して同じページにとどまります(ほとんどのAJAXの例では、おそらく「見えない」と思われる別のprocess.phpページに送信されますが、同じページに「とどまらない」ため、リダイレクトされます。

基本的に、クライアントは 1 から 10 の数量を選択します。「2」を選択すると... ページはリロードされません..しかし、セッション [数量]=2 が設定されます。シンプルなはずですが、フォームと同じページに POST しますか? または別のページに POST すると、どういうわけかリダイレクトされますか?

また、私が行った1つのテストでは、「エコーセッション[数量]」を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と呼ばれるPOSTのページです(例ではそれを呼び出したので、今のところそれを使用しました)

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

0 に答える 0