1

对于坚持使用当前设置的客户,他有一个表单,在提交时会在 iframe 中加载一个 asp 文件。

由于过去几年我只在这个领域工作,我在使用 iFrames 或 ASP 方面的经验很少,所以你能给我的任何帮助将不胜感激。

表格在 sidebar.php 中...

<form method="post" action="http://www.vebra.com/home/quick/PFrefine.asp" name="searchform">
        <dl id="property_search">
          <dt class="bord">Bedrooms</dt>
          <dd><select name="bed" class="type1 Selectrooms">
                  <option selected="selected" value="1">0</option>
                  <option value="2">2</option>
                  <option value="3">2</option>
                  <option value="4">3</option>
                  <option value="5">4</option>
                  <option value="6">5</option>
              </select>
          </dd>

          <dt class="bord">Minimum Price</dt>
          <dd><select class="type2 SelectPrices" name="lop">
                <option value="0" selected>&#163;0</option>
                <option value="25000">&#163;25,000</option>
                <option value="50000">&#163;50,000</option>
                <option value="75000">&#163;75,000</option>
                <option value="100000">&#163;100,000</option>
                <option value="125000">&#163;125,000</option>
                <option value="150000">&#163;150,000</option>
                <option value="175000">&#163;175,000</option>
                <option value="200000">&#163;200,000</option>
                <option value="225000">&#163;225,000</option>
                <option value="250000">&#163;250,000</option>
                <option value="275000">&#163;275,000</option>
                <option value="300000">&#163;300,000</option>
                <option value="325000">&#163;325,000</option>
                <option value="350000">&#163;350,000</option>
                <option value="375000">&#163;375,000</option>
                <option value="400000">&#163;400,000</option>
                <option value="500000">&#163;500,000</option>
                <option value="600000">&#163;600,000</option>
                <option value="700000">&#163;700,000</option>
                <option value="800000">&#163;800,000</option>
                <option value="900000">&#163;900,000</option>
                <option value="1000000">&#163;1,000,000</option>
                <option value="2000000">&#163;2,000,000</option>
                <option value="3000000">&#163;3,000,000</option>
                <option value="4000000">&#163;4,000,000</option>
                <option value="5000000">&#163;5,000,000</option>
                <option value="6000000">&#163;6,000,000</option>
              </select>
          </dd>

          <dt class="bord">Maximum Price</dt>
          <dd><select name="hip" class="type3 SelectPrices">
                <option value="25000">&#163;25,000</option>
                <option value="50000">&#163;50,000</option>
                <option value="75000">&#163;75,000</option>
                <option value="100000">&#163;100,000</option>
                <option value="125000">&#163;125,000</option>
                <option value="150000">&#163;150,000</option>
                <option value="175000">&#163;175,000</option>
                <option value="200000">&#163;200,000</option>
                <option value="225000">&#163;225,000</option>
                <option value="250000">&#163;250,000</option>
                <option value="275000">&#163;275,000</option>
                <option value="300000">&#163;300,000</option>
                <option value="325000">&#163;325,000</option>
                <option value="350000">&#163;350,000</option>
                <option value="375000">&#163;375,000</option>
                <option value="400000">&#163;400,000</option>
                <option value="500000">&#163;500,000</option>
                <option value="600000">&#163;600,000</option>
                <option value="700000">&#163;700,000</option>
                <option value="800000">&#163;800,000</option>
                <option value="900000">&#163;900,000</option>
                <option value="1000000">&#163;1,000,000</option>
                <option value="2000000">&#163;2,000,000</option>
                <option value="3000000">&#163;3,000,000</option>
                <option value="4000000">&#163;4,000,000</option>
                <option value="5000000">&#163;5,000,000</option>
                <option selected value="6000000">&#163;6,000,000+</option>
              </select>
          </dd>
          <dt>Regions</dt><dd><img src="images/spacer.gif" alt="" /></dd>

          <dt><input type="checkbox" name="cou" id="couHertfordshire" value="43"/></dt><dd>Hertfordshire</dd>
          <dt><input type="checkbox" name="cou" id="couLondonNorth" value="126" /></dt><dd>London, North</dd>
          <dt><input type="checkbox" name="cou" id="couLondonNorthWest" value="127" /></dt><dd>London, North West</dd>

          <input type="hidden" name="slo" value="undefined" />
            <input type="hidden" name="fid" value="894" />
            <input type="hidden" name="bid" value="0" />
            <input type="hidden" name="dbt" value="1" />
            <input type="hidden" name="nre" value="undefined" />
            <input type="hidden" name="thu" value="undefined" />
            <input type="hidden" name="vto" value="undefined" />
            <input type="hidden" name="ord" value="undefined"/>
            <input type="hidden" name="nba" value="undefined" />

          <dt><input type="submit" class="search_now" value="Find Property" formtarget="hello" /></dt><dd><img src="images/spacer.gif" alt="" /></dd>
        </dl>
      </form>

我想在 test.php 中的结果页面...

<iframe width="583" height="500" name="hello">iframe</iframe>

不幸的是,我根本无法访问 ASP 处理程序文件。

基本上,当您在侧边栏中填写表单并单击提交按钮时,我希望浏览器重定向到结果页面并使用结果加载 iframe。

那可能吗?

4

4 回答 4

0

有可能,您只需使用 ajax 来发布表单数据。一切尽在您的掌控之中。请享用。

于 2012-05-03T11:51:39.603 回答
0

您需要在 iframe 上命名,然后在表单上使用target属性。

<iframe src="foo" name="myframe"></iframe>
<form method="post" action="http://www.vebra.com/home/quick/PFrefine.asp" name="searchform" target="myframe">
...
于 2012-05-03T11:58:28.007 回答
0

这是一个使用 JavaScript 和 jQuery 读取表单并相应地更改 iframe 的 url 的示例:

<head>
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js" type="text/javascript"></script>
</head>

<body>
<form id="target" action="javascript:return false;">
  <input type="text" value="http://www.ftd.de" />
  <input type="submit" value="Go" />
</form>

<iframe id="iframe1" src="javascript:false;"></iframe>

<script>
$('#target').submit(function() {
  $('#iframe1').attr('src', $("input:first").val());
});    
</script>
</body>

现场演示:

jsfiddle

于 2012-05-03T12:15:44.673 回答
0

如果 iFrame 中的页面能够接受 GET 和 POST 数据,您可以将数据发布到包含 iFrame 的页面,然后使用您选择的语言将其作为查询字符串附加到 iFrame 的 src 标记。

或者,如果 iFrame 中的页面只接受 POST 数据,例如因为编写它的人出于(感知的)安全原因阻止它接受 GET 数据,您可以使用您选择的语言在目标页面中编写另一个包含iFrame,然后自动提交(使用 JavaScript)到 iFrame,将该表单的目标设置为 iFrame。(请注意,这与上面使用查询字符串的 JQuery 示例略有不同。)

这是上述第一个解决方案的示例:

第一页表格:

<form name="frmPost" method="post" action="test_iframe_post_target.php">
    <input type="hidden" name="actionid" value="2" />
    <input type="hidden" name="qy" value="1" />
    <input type="hidden" name="pid" value="123" />
</form>

<p><a href="javascript:document.frmPost.submit();">Submit Form</a></p>

目标页面:

<?php
$lngAction = $_POST["actionid"];
$lngQy = $_POST["qy"];
$lngPID = $_POST["pid"];
?>

<p>This is the target page. Action is: <?php echo $lngAction; ?></p>

<iframe name="test_iframe" width="900" height="320" src="test_iframe_post_iframe.php?action=<?php echo $lngAction; ?>&qy=<?php echo $lngQy; ?>&pid=<?php echo $lngPID; ?>" border="0" frameborder="0" align="center" marginwidth="1" marginheight="1" target="_top"></iframe>

框架:

<p>This is the iFrame. Action is: <?php echo $lngAction; ?>; Qy is: <?php echo $lngQy; ?>; PID is: <?php echo $lngPID; ?>.</p>
于 2014-02-12T11:55:20.527 回答