2016-08-24 2 views
1

Ich versuche automatisch auf eine Schaltfläche in Iframe (um einen Artikel in den Warenkorb hinzuzufügen), wenn es von der Ergebnisseite geöffnet wird.PHP/JS: Auto klicken Sie auf Schaltfläche in iframe, wenn es geöffnet ist

Mein Code funktioniert, aber die Seite wird für immer geladen und fügt sie dem Warenkorb ohne anzuhalten hinzu.

Ergebnisseite:

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

Antwort

1

Sie Formular sind einreichen (verursacht Seite neu zu laden), während click() Aktion ausführen. Sie müssen überprüfen, ob das Formular in JavaScript eingereicht wurde. ZB:

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

Es erhält Parameter submitted nach dem ersten Formular & Kontrollen in Javascript, wenn dieser Parameter gesetzt fügt (wenn es nicht gesetzt ist - führt Schaltfläche klicken)

+0

Die Seite wird geladen nicht auf unbestimmte Zeit mehr, aber jeder manuelles Laden lädt alle Artikel in den Warenkorb ... – Clementine

Verwandte Themen