2016-08-24 81 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> 

它增加了獲得第一種形式後,參數submitted在JavaScript提交&檢查,如果該參數設置(如果沒有設置 - 執行按鈕點擊)

+0

的網頁沒有無限加載了,但每手動頁面加載將所有文章添加到購物車... – Clementine