javascript PhP & Ajex|从DropDownList中选择YEAR后,DB记录未显示

irlmq6kh  于 2023-03-28  发布在  Java
关注(0)|答案(1)|浏览(125)

详情请参见所附图片。

简介
1.用户点击“查看”
1.用户选择“年份”
1.显示该“年份”的所有记录
对于第2步,当用户单击“选择年份”时,整个页面刷新,这将返回到第1步。我的意图是 AJAX 来显示记录,但我不确定错误在哪里。
有两个php文件:
A)order_view. php
这个php显示到第2步。
B)order_view_ByYear.php
在第3步,用户点击“选择年份”后, AJAX 在底部显示记录。
A)order_view. php

<script type="text/javascript">
function submitYear(sno)
{
    var cusid=sno;
    var yearSelDD=document.getElementById("selectYear");
    var yearSel = yearSelDD.options[yearSelDD.selectedIndex].value;
    alert("cusid = " + cusid + " yearSel = " + yearSel);
    $.ajax({
            type:'POST',
            url:'order_view_ByYear.php',
            data:{
                cusid:cusid,
                yearSel:yearSel,
                wrapper:"testing"
            },
            //If successful, which part of webpage to change?
            success: function(result)
            {
                $('#showOrders').html(result);
            }  
    }); 
}
</script>

...
some codes
...

//==============================  Display that User's Orders using ajax ==============================  
    $sql2 = $mysqli->query("select * from orders where customerid='$cusid' ORDER BY orderid DESC");
    if ($sql2->num_rows > 0) {
        while ($row2 = $sql2->fetch_assoc()) {
            
            // Populate the YearArray() DropDownList
            $rowYear = date('Y', strtotime($row2["date"]));
            if($YearToAdd != $rowYear)
            {
                $YearToAdd = $rowYear;
                array_push($YearArray, $YearToAdd);
            }
        }
    }
?>
            <table><tr><td>
            <form method="post">
                <select>
                    <?php

                    // Iterating through the YearArray()
                    foreach($YearArray as $item){
                        echo "<option value='$item'>$item</option>";
                    }
                    ?>
                </select>
                <input type="submit" value="Select Year" id="selectYear" class="send" onClick="javascript:submitYear($ssno)"/>
            </form>
            </td></tr></table>
            <br/>
<?php
    echo "<div id=\"showOrders\"></div>";

...
some codes
...

B)order_view_ByYear.php

<?php
error_reporting(0);
include "../database_connection.php";
$cusid    = $_POST['cusid'];
$YrSelect  = $_POST['yearSel'];

echo "CustID = ". $cusid . " Year = " . $YrSelect;

?>

我添加了一个警报,但点击按钮“选择年份”后没有警报发生。我的预期结果是它应该在底部回显2个变量CustID & Year。相反,整个页面自行刷新并返回到步骤1。
非常感谢。

yr9zkbsy

yr9zkbsy1#

这是因为您使用forminput type="submit"来提交它,用button type="button"替换它,或者使用onsubmitevent handler来通过jQuery提交它。

<button type="button" id="selectYear" class="send" onClick="javascript:submitYear($ssno)">Select Year</button>

或者:

<form method="post" id="submitForm" onsubmit="javascript:submitYear($ssno)">

相关问题