2016-08-24 3 views
1

結果ページから開かれたiframe内のボタンを自動クリック(カートに商品を追加)しようとしています。PHP/JS:開かれたiframe内の自動クリックボタン

私のコードは動作していますが、ページは永久にロードされており、停止することなくカートに追加し続けます。

結果ページ:

<form> 
<a href='#cart'>Add</a> 
<div id='cart'> 
<iframe src="http://domaine.com/inframe.php" name = 'myIframe' ></iframe> 
</div> 
</form> 

IFRAME:あなたは、フォームを送信している

<form action='' method='post'> 
<input type='submit' id ="iframeAdd" name='iframeAdd' value='ADD'> 
<input type='hidden' name='quantity'> 
<input type='hidden' name='item' value='1' /> 
<input type='hidden' name='price' value='20' /> 
<script> 
window.onload = function(){ 
    document.getElementById('iframeAdd').click(); 
} 
</script> 
<?php 
if (isset($_POST['iframeAdd'])) { 
echo 'ADDED !'; 
} else echo 'ERROR'; 
?> 
</form> 

答えて

1

(ページがリロードさせる)click()アクションを実行している間。フォームがjavascriptで提出されたかどうかを確認する必要があります。例:

<form action='?submitted' method='post'> 
<input type='submit' id ="iframeAdd" name='iframeAdd' value='ADD'> 
<input type='hidden' name='quantity'> 
<input type='hidden' name='item' value='1' /> 
<input type='hidden' name='price' value='20' /> 
<script> 
    function getParameterByName(name, url) { 
    if (!url) url = window.location.href; 
    name = name.replace(/[\[\]]/g, "\\$&"); 
    var regex = new RegExp("[?&]" + name + "(=([^&#]*)|&|#|$)"), 
     results = regex.exec(url); 
    if (!results) return null; 
    if (!results[2]) return ''; 
    return decodeURIComponent(results[2].replace(/\+/g, " ")); 
} 
window.onload = function(){ 
    if(getParameterByName('submitted') === null){ 
    document.getElementById('iframeAdd').click(); 
    } 
} 

</script> 
<?php 
if (isset($_POST['iframeAdd'])) { 
echo 'ADDED !'; 
} else echo 'ERROR'; 
?> 
</form> 

それは(それが設定されていない場合 - ボタンのクリックを実行します)このパラメータが設定されている場合、最初の形式はJavaScriptで&小切手を提出した後、パラメータsubmittedを取得する追加のページはもう無限にロードするが、すべてではないされて

+0

マニュアルページの読み込みは、すべての記事をカートに追加します... – Clementine

関連する問題