0

嗨,我在脚本语言方面确实存在问题:我在 php 中使用两个下拉列表框,当页面加载项目下拉列表选项时,我的应用程序由 mvc 开发。但用户从列表中选择项目并根据项目在下拉列表中加载模块列表。

我尝试使用 javascript 来选择项目值。而且我不知道如何将客户端变量值传递给服务器端变量。我的代码

视图.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

我的疑问是,在这里使用哪种脚本方法来完成此任务。请向我建议如何做到这一点....

谢谢库马尔

4

3 回答 3

2

$("#setResult").load('thepageurl.php?pid='+document.getElementById("pid").value);

此代码将通过 GET 方法将pid发送到pageurl.php并获取结果并将其放入setResult元素

这是示例:http ://www.w3schools.com/jquery/ajax_load.asp

注意:您必须在 HTML header 中包含 JQuery 库。

于 2013-10-10T12:10:11.753 回答
0

您可以使用 ajax 调用来做到这一点。这就像

  • 您需要告诉它您要将数据传递到哪个方法。 (方法名称WhereUWantToGo)

  • 您需要指定要传递的数据。
    (param=document.getElementById("pid").value)

  • 您需要指定将返回函数的结果放在何处。 (id 为 setResult 的 div)

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);

                    }
                });
    }
于 2013-10-10T12:00:11.733 回答
0

库马尔

基本上,当您在浏览器中加载此代码时,不会看到任何 php 代码,并且您的 for 循环中的所有值都将被获取并使用您的 html 标签格式化。因此,您可以填充点击并为每个点击选择您获取值并使用 ajax 获取值。

于 2013-10-10T12:51:42.893 回答