如何通过下拉列表中选择的值没有提交数据使用php

How to pass selected value in dropdown list without submit data using php?

本文关键字:提交 数据 php 下拉列表 何通过 选择      更新时间:2023-09-26

我使用codeigniter。我有控制器呼叫feature.php和视图呼叫feature.php在视图php我有下拉列表。当用户选择下拉菜单时,我需要在会话中保存我的包id。我怎么能做到这一点,而不刷新和提交数据在我的from ?

这是我的HTML代码在视图php页面

<div class="form-group">
<label for="lastname" class="control-label">Your Packages</label>
<?php if(isset($tourbuddy_packages)){?>
<select id="itemType_id" class="form-control input-sm" name="tripbuddy_PackageTitle" onChange="disp_text()">
    <?php foreach ($tourbuddy_packages as $packages) {?>
    <option value="<?php echo $packages['PackageID'] ?>">
        <?php echo $packages[ 'PackageTitle']?>
    </option>
    <?php } ?>
</select>
<input type="hidden" name="PackageID" id="country_hidden">
<?php } else { ?>
<select class="form-control input-sm" name="tripbuddy_PackageTitle">
    <option>Add Packages</option>
</select>
<?php } ?>
</div>

需要快速帮助

您可以创建一个名为save_package_to_session.php的php文件;

<?php
if (!isset($_SESSION)) {
    session_start();    
}
$package_id = $_POST["id"];
$_SESSION["pkg_id"] = $package_id;
echo $_SESSION["pkg_id"];
?>

和js,

$("#itemType_id").change(function() {
    $.ajax({
        url : "save_package_to_session.php",
        method: "POST",
        data: "id=" + $(this).val(),
        success: function(response) {
            // handle
        }
    })  
});

我不太了解php代码但是你可以发出ajax请求

 $("#itemType_id").change(function() {
   $.ajax({
     url : controller_action_url,
     method: "POST" /* use get or post*/,
     data: "package_id=" + $(this).val(),
     success: function(response) {
     }
  })  
});

简单地说,现在您可以在控制器上获得package_id参数,并且可以存储在会话中。