1

わかりましたので、iframe として埋め込まれているプロファイルには星評価システムがありますが、データベース テーブルなどが公開されているため安全ではありませんが、それは実現する予定です。ここで、その iframe 内のフォームの非表示フィールドに 1 ~ 5 の評価値を挿入し、自動的に送信したいと考えています。どうすればこれを達成できますか? いくつかのオンラインの例は機能しません。

iframe 内:

<form action="submit_rating.php" method="POST">
  <input type="text" name="1" id="rate1" maxlength="1">
  <input type="text" name="2" id="rate2" maxlength="1">
  <input type="text" name="3" id="rate3" maxlength="1">
  <input type="text" name="4" id="rate4" maxlength="1">
  <input type="text" name="5" id="rate5" maxlength="1">
  <input type="submit" value="Rate" style="display:none;" />
</form>

iframe:

<iframe src="http://domain.com/submit_rating.php" frameborder="0" scrolling="no" height="10" width="25" name="frame"></iframe>

評価リンク:

<a href="howtoinsert?">1</a>
<a href="howtoinsert?">2</a>
<a href="howtoinsert?">3</a>
<a href="howtoinsert?">4</a>
<a href="howtoinsert?">5</a>

ありがとうございました。私が言ったように、他のすべての例はゴミであり、機能しませんでした。

4

1 に答える 1

1

次のようにできます(jqueryを使用):

評価サイト:

<!DOCTYPE html>
<html>
  <head>
    <title></title>
    <script src="http://code.jquery.com/jquery-1.10.1.min.js"></script>
    <script>
      function setRating(rating) {
        var frame = $('iframe')[0].contentWindow.document;
        $(frame).find('#rate'+rating).val('1');
        $(frame).find('form').submit();
      }
    </script>
  </head>
  <body>
    <iframe src="frame.html" frameborder="0" scrolling="no" height="10" width="25" name="frame"></iframe>
    <a href="javascript:setRating(1)">1</a>
    <a href="javascript:setRating(2)">2</a>
    <a href="javascript:setRating(3)">3</a>
    <a href="javascript:setRating(4)">4</a>
    <a href="javascript:setRating(5)">5</a>
  </body>
</html>

フレーム内容:

<!DOCTYPE html>
<html>
  <head>
    <title></title>
  </head>
  <body>
    <form action="submit_rating.php" method="POST">
      <input type="text" name="1" id="rate1" maxlength="1">
      <input type="text" name="2" id="rate2" maxlength="1">
      <input type="text" name="3" id="rate3" maxlength="1">
      <input type="text" name="4" id="rate4" maxlength="1">
      <input type="text" name="5" id="rate5" maxlength="1">
      <input type="submit" value="Rate" style="display:none;" />
    </form>
  </body>
</html>

しかし、より良い方法は ajax を使用することです。

<!DOCTYPE html>
<html>
  <head>
    <title></title>
    <script src="http://code.jquery.com/jquery-1.10.1.min.js"></script>
    <script>
      function setRating(rating) {
        $.post('submit_rating.php', {
          rating: rating
        });
      }
    </script>
  </head>
  <body>
    <a href="javascript:setRating(1)">1</a>
    <a href="javascript:setRating(2)">2</a>
    <a href="javascript:setRating(3)">3</a>
    <a href="javascript:setRating(4)">4</a>
    <a href="javascript:setRating(5)">5</a>
  </body>
</html>
于 2013-10-05T11:34:20.003 に答える