标题可能不是提出这个问题的最佳方式,所以如果我能改进它,请告诉我。
我要做的是使用下拉菜单更改PHP对象的值。
在下面的示例中,我希望将$ selected指定为所选菜单选项的“值”。
$selected = $_GET['program_select'];
以下是下拉菜单:
<select id="programs_select" name="programs_select">
<option>Select a Different Month</option>
<?
foreach($pagedata->programs as $programs){
?>
<option value="<?=$programs->id?>"><?=$programs->title?></option>
<?
}
?>
</select>
如何将此值发送到服务器并使用所选值重新加载页面?
例如,如果选择了第二个选项并且其id为2,则结果为:
$selected = 2;
仅供参考,这用于动态生成缩略图菜单的输出数据。显示的“程序”将由所选选项中的值确定。
答案 0 :(得分:0)
<select id="programs_select" name="programs_select" onchange="ihavechanges(this.options[this.selectedIndex].value)">
<option>Select a Different Month</option>
<?
foreach($pagedata->programs as $programs){
?>
<option value="<?=$programs->id?>"><?=$programs->title?></option>
<?
}
?>
</select>
<script type="text/javascript">
function ihavechanged(towhat)
{
document.location.href = "reload.php?id="+towhat;
}
</script>
答案 1 :(得分:0)
<select id="programs_select" name="programs_select">
<option>Select a Different Month</option>
<?
$selected = $_GET['program_select'];
foreach($pagedata->programs as $programs){
$seld = ($selected == $program-id) ? 'selected' : '';
echo '<option value="'.$programs->id.'" '.$seld.'>'.$programs->title.'</option>';
}
?>
</select>
答案 2 :(得分:0)
你在php端使用GET。所以,如果您只是想知道如何将值传递给您的php文件,那么将您的select标签放入表单并添加一个提交按钮。
<form id="your_id" name="your_id" method="get" action="your_controller/your_function_name">
<select id="programs_select" name="programs_select">
<option>Select a Different Month</option>
<?
foreach($pagedata->programs as $programs){
?>
<option value="<?=$programs->id?>"><?=$programs->title?></option>
<?
}
?>
</select>
<input type="submit" id="submit" name="submit" value="GO">
</form>
在你的控制器中,根据值回显一些东西。
$ selected = $ _GET ['program_select'];
但是,如果您想要更改同一页面中的内容而不刷新。您可能需要ajax调用来执行此操作,我建议使用jQuery ajax api(http://api.jquery.com/jQuery.ajax/)。
$("select#programs_select").live('change', function(){
var id = $("select#programs_select").val();
$.ajax({
type: "GET",
url: "your_controller/the_funstion_name?programs_select=" + id,
data: "",
contentType: "application/json; charset=utf-8",
success: function(msg) {
$("#your_thumbnail_menu_id").html(msg);
},
error: function() {
alert("Error! Ajax failed");
}
});
});
在你的控制器端,最后回复你需要的html。 e.g:
$selected = $_GET['program_select'];
$html = "<ul><li>your menu $selected</li>";
$html .="<li>which depends on the id you got!</li></ul>";
echo $html;