如何从客户端到服务器端接收值

时间:2013-10-10 11:34:48

标签: javascript php client-side-scripting server-side-scripting

您好我在脚本语言中严格存在问题: 我正在使用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

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

感谢 库马尔

3 个答案:

答案 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获取值和获取值。