如何将表单从主域提交到子域?

时间:2012-11-28 10:53:45

标签: php javascript jquery html

我想从主页向子域名页面提交表单。 这是我的代码

html - 主页(主域名)

<table>
    <tr>
        <td>Name</td>
        <td><input type="text" name="txtName" id="txtName" /></td>
    </tr>
    <tr>
        <td>Email</td>
        <td><input type="text" name="txtEmail" id="txtEmail" /></td>
    </tr>
    <tr>
        <td><input name="btnSubmit" id="btnSubmit"  value="Submit" type="button"></td>
    </tr>             
</table> 

<form id="getDetails" method="post" action="http://customers.liyyas.com/">
    <input type="hidden" name="act" value="Users" />
    <input type="hidden" name="hdnName" id="hdnName" />
    <input type="hidden" name="hdnEmail" id="hdnEmail" />     
</form>  

脚本

<script type="text/javascript"> 
$(document).ready(function(){
    $('#btnSubmit').click(function()
        {
          alert("hai");
            document.getElementById("getDetails").submit();
            document.getElementById("hdnName").value = $('#txtName').val();
            document.getElementById("hdnEmail").value = $('#txtEmail').val();
     });
    });  
 </script>

子域名页面 - user.php

<?php 
$act = formatstring($_POST['act']);
switch($act)
{
case "Users":
        $Name=$_POST['hdnName'];
        $Email=$_POST['hdnEmail'];  
        print($Name);
        exit();
}    
?>

在子域中我打印了值但不打印

是否可以将表单从主域提交到子域?

1 个答案:

答案 0 :(得分:2)

您需要从

更改表单元素的action属性
http://customers.liyyas.com/

http://customers.liyyas.com/customers.php

我还假设您知道根据此代码

$('#btnSubmit').click(function()
    {
      alert("hai");
        document.getElementById("getDetails").submit();
        document.getElementById("hdnName").value = $('#txtName').val();
        document.getElementById("hdnEmail").value = $('#txtEmail').val();
 });

表单将在hdnName和hdnEmail的值更改之前提交?这也可能是你通过切换几行快速切换解决方案的错误。这可能是一个错误的原因是,当您的表单提交时,页面将被重新加载,这意味着用户永远不会看到通过JavaScript插入的新值。

修复可能是

$('#btnSubmit').click(function()
    {
      alert("hai");
        document.getElementById("hdnName").value = $('#txtName').val();
        document.getElementById("hdnEmail").value = $('#txtEmail').val();
        document.getElementById("getDetails").submit();
 });