您好我在脚本语言中严格存在问题: 我正在使用php中的两个下拉列表框,我的应用程序是由mvc开发的 当页面加载项目下拉列表选项被加载时。 但是用户从列表中选择项目,并根据项目在下拉列表中加载模块列表。
我尝试使用javascript来选择项目值。我不知道如何将客户端变量值传递给服务器端变量。 我的代码
view.php
<table class="row-fluid">
<tr>
<td><label for="taProj"><?php echo t('Project')?>:</label></td>
<td><select name="taProj" id="taProj" onchange= "checkField(this.value)">
<option value="" >-------------------------</option>
<?php foreach ($tap as $row){?>
<option value="<?php echo $row['proj_id']; ?>" ><?php echo $row['proj_name'];?></option>
<?php } ?>
</select></td>
<input type="hidden" name="pid" id="pid">
</tr>
<tr>
<td><label for="taModule"><?php echo t('Module Name')?>:</label></td>
<td><select name="taModule" id="taModule" >
<option value="" >-------------------------</option>
<?php //$myv = $_POST['modid'];
$myvar = print "<script type='text/javascript'>document.getElementById('pid')</script>";
foreach ($tam as $row){
if($row['proj_id'] == $myvar){?>
<option value="<?php echo $row['mod_id']; ?>" ><?php echo $row['mod_name'];?></option>
<?php } }?>
</select></td>
</tr>
脚本代码:
function checkField(val){
document.getElementById("pid").value = val;
//alert(document.getElementById("pid").value);
}
来自控制器的$ tap和$ tam
我的疑问是,在这里使用哪种脚本方法来完成这项任务。 请告诉我如何做到这一点....
感谢 库马尔
答案 0 :(得分:2)
$( “#的setResult”)负载( 'thepageurl.php PID =?' +的document.getElementById( “PID”)值。);
此代码会通过GET方法将 pid 发送到 thepageurl.php 并获取结果并将其放入 setResult 元素
这是示例:http://www.w3schools.com/jquery/ajax_load.asp
注意:您必须在HTML标题中包含JQuery库。
答案 1 :(得分:0)
您可以使用ajax调用执行此操作。这就像
你需要告诉它你想要传递数据的方法。 的(MethodNameWhereUWantToGo)强>
您需要指定要传递的数据 (param = document.getElementById(“pid”)。value)
您需要指定返回函数结果的放置位置。 (div with id setResult)
function checkField(val) { document.getElementById("pid").value = val; $.ajax({ url: "/MethodNameWhereUWantToGo", type: "POST", data: { param:document.getElementById("pid").value }, success: function (result) { $("#setResult").html(result); } }); }
答案 2 :(得分:0)
库马尔
基本上,当您在浏览器中加载此代码时,不会看到任何PHP代码,并且您的for循环中的所有值都将使用您的html标记获取和格式化。所以你可以填充tap,每次点击选择你都可以使用ajax获取值和获取值。