2

我正在使用 Javascript 将表单变量传递给 PHP 页面sprcial_action.php,但它没有重定向到该页面。我的代码如下,请告诉我问题出在哪里?

<script>
function formSubmit(index)
{
    var image = document.getElementById("hdnimage" + index);
    var email = document.getElementById("email" + index);

    window.location.href = "sprcial_action.php?name=" + image; 
}
</script>

<form enctype="multipart/form-data" id="form1" name="form1" method="get">

<div class="offers">

    <div class="offer-banner">
         <img src="/images/specialoffer/offer-1.png" />
    </div>
    <div class="mobile">
         <input type="text" value="Mobile" name="mobile" />
    </div>
    <div class="or-button"></div>
    <div class="email">
         <input type="text" value="Email Address" name="email" id="email0"  />
    </div>
    <input type="hidden" name="hdnimage0" id="hdnimage0" value="/images/specialoffer/offer-1.png" />
    <div class="redem-copon">
         <!--<a href="#"><img src="/images/specialoffer/copun.png" /></a>-->
         <input type="image" src="/images/specialoffer/copun.png" onclick="formSubmit(0)" />
    </div>
</div>
</form>
4

4 回答 4

2

window.location.href需要以 . 开头的完整路径http://。并添加.value到图像对象

你应该写成

window.location.href = "http://mydomain.com/sprcial_action.php?name=" + image.value;
于 2012-11-29T06:16:17.750 回答
1

如果 'sprcial_action.php' 页面在同一个应用程序中,那么请参考上面的答案(@Rab'a 答案),你必须使用 image.value 而不是 image(因为它将被视为一个对象)。您无需提供完整路径。但如果此页面在当前应用程序之外,则您必须指定完整地址。

window.location.href = "http://imagesheaven.com/sprcial_action.php?name=" + image.value;

也尝试使用 document.location.href。谢谢!!

于 2012-11-29T06:30:26.643 回答
1

有答案:

 <script>
function formSubmit(index)
{
    var image = document.getElementById("hdnimage" + index);
    var email = document.getElementById("email" + index);
var data=image.value;
    window.location.href = "http://yourservername/sprcial_action.php?name=" + data; 
}
</script>

<form enctype="multipart/form-data" id="form1" name="form1" method="get">

<div class="offers">

    <div class="offer-banner">
         <img src="/images/specialoffer/offer-1.png" />
    </div>
    <div class="mobile">
         <input type="text" value="Mobile" name="mobile" />
    </div>
    <div class="or-button"></div>
    <div class="email">
         <input type="text" value="Email Address" name="email" id="email0"  />
    </div>
    <input type="hidden" name="hdnimage0" id="hdnimage0" value="/images/specialoffer/offer-1.png" />
    <div class="redem-copon">
         <!--<a href="#"><img src="/images/specialoffer/copun.png" /></a>-->
         <input type="image" src="/images/specialoffer/copun.png" onclick="formSubmit(0)" />
    </div>
</div>
</form>
于 2012-11-29T06:49:37.623 回答
1

您的image变量指的是input object,而不是它的值。要获得它的价值,请添加.value

window.location.href = "sprcial_action.php?name=" + image.value;
// here -------------------------------------------------^

但请注意,您正在获取该email字段但没有对其进行任何操作,并且设置href不会提交表单,它只会将您带到给定页面。

如果要更改表单提交到的位置,则必须action在对象上设置属性form(而不是更改location.href):

var form = document.getElementById("form1");
form.action = image.value;

我不能 100% 确定您可以在跨浏览器可靠地提交表单期间更改它,您需要在目标浏览器上进行测试。

于 2012-11-29T06:17:44.940 回答