2013-10-05 2 views
1

Итак, у нас есть рейтинговая система звезд для профилей, которые встроены в iframe, небезопасные, поскольку они отображают таблицы базы данных и т. Д., Но это происходит. Теперь мы хотим вставить значение рейтинга в скрытое поле в форме внутри этого iframe с 1-5 и отправить автоматически. Как мы можем достичь этого? Несколько онлайн-примеров не работают.Вставка текста в поле формы iframe и отправьте

Внутри 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> 

Спасибо. Как я уже сказал, все остальные примеры были мусором и не работали.

ответ

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> 
+0

Теперь, если я хочу просто вставить настраиваемое значение , как это сделать? $ (Рама) .find ('# about_me' + рейтинг) .val ('1'); например, пользовательское имя ввода. Спасибо –

Смежные вопросы