如何根据会话变量编程改变形式的行动? [英] How to change the form action programatically according to session variable?

查看:117
本文介绍了如何根据会话变量编程改变形式的行动?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

如果我有一个格式其中动作应根据一些会话变量不同。我怎样才能改变形式的行动动态,以便对特定链接按钮的客户端点击我可以与所需的行动提交表单。


 <表ID =MyForm的行动=我想,以动态地改变它的方法=后>
    <%-------------%GT;
< /表及GT;


 <脚本类型=文/ JavaScript的>
    功能submitform()
    {
      document.myform.submit();
    }< / SCRIPT>


例如:

 如果会话[EMP] = 1,则动作/A.aspx如果会话[EMP] = 2那么动作/B.aspx


解决方案

选项1

我通常放在隐藏域服务器值加载窗体时,这样我可以与他们在JavaScript中进行交互:

 函数submitform()
{
    //获取通过设置服务器端表单提交网址
    变种myHiddenObj =的document.getElementById(&下;%= hdnServerValue.ClientID%gt;中);    //获取表单对象
    变种myFormObj =的document.getElementById(MyForm的);    //改变形式的行动和放大器;提交
    myFormObj.action = myHiddenObj.value;
    myHiddenObj.submit();
}

选项2

如果您只是想表单行动,改变,不需要任何其他的客户端处理,只需更改服务器上的表单操作(你需要添加 =服务器到您的窗体标签):

标记:

 <表ID =MyForm的=服务器行动=方法=后>
    <%-------------%GT;
< /表及GT;

C#(或您的preferred服务器端语言)

 如果(会话[EMP]。的ToString()==1)
    myform.Action =A.aspx;
否则如果(会话[EMP]。的ToString()==2)
    myform.Action =B.aspx;
其他
    //处理既不1或2的

If i have a form which action should differ according to some session variable . How can i change the action of the form dynamically so that on client click of specific link button i could submit the form with the required action.


<form id="myform" action="I wanna to change it dynamically" method="post" > 
    <%-------------%> 
</form>


<script type="text/javascript">
    function submitform()
    {
      document.myform.submit();
    }

</script>


For example :

If session["emp"] = 1 then the action is /A.aspx

If session["emp"] = 2 then the action is /B.aspx

解决方案

Option 1

I typically place server values in hidden fields when the form loads so that I can interact with them in JavaScript:

function submitform()
{
    // Get URL that was set server-side for form submission
    var myHiddenObj = document.getElementById("<%= hdnServerValue.ClientID %>");

    // Get form object
    var myFormObj = document.getElementById("myform");

    // Change form action & submit
    myFormObj.action = myHiddenObj.value;
    myHiddenObj.submit();
}

Option 2

If you simply want the form action to change and require no other client-side processing, simply change the form action on the server (you'll need to add runat="server" to your form tag):

Markup:

<form id="myform" runat="server" action="" method="post" > 
    <%-------------%> 
</form>

C# (or your preferred server side language)

if(Session["emp"].ToString() == "1")
    myform.Action = "A.aspx";
else if (Session["emp"].ToString() == "2")
    myform.Action = "B.aspx";
else
    // Handle neither 1 or 2

这篇关于如何根据会话变量编程改变形式的行动?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆