[英]Avoid redirrect or endless loop while auto-submitting form
我希望我的表單在不單擊提交按鈕的情況下采取措施。 我實現了,但是現在我正處於十字路口。 如果我在action屬性中使用腳本URL,則用戶會跳到另一個頁面。 如果我以腳本本身為目標,那么我會陷入無盡循環。 我怎么解決這個問題?
這是我的代碼:
<form class="myForm" action="includes/teste.php" method="POST" id="form-id">
<input name="myField" type="hidden" id="myField" class="myField" value="" />
</form>
<script language="JavaScript" type="text/javascript">
window.onload=function(){
if(navigator.geolocation)
{
navigator.geolocation.getCurrentPosition(showPosition);
}
else
{
alert("Geolocation is not supported by this browser.");
}
}
function showPosition(pos){
document.getElementById('myField').value = (pos.coords.latitude+","+pos.coords.longitude);
document.getElementById("form-id").submit()
}
</script>
如果您想知道這是teste.php應該做什么:
<?php
session_start();
$_SESSION["origin"] = $_POST['myField'];
?>
基本上,這就是我想要實現的目標,但又需要不斷地重新加載頁面或重新引導用戶。
JS代碼本身會將用戶當前位置的經度和緯度發送到隱藏輸入的值。 我需要從那里獲取並將其存儲在$ _SESSION中。
無需嘗試在PHP中創建$ _SESSION變量,您可以使用JS創建cookie,然后在需要時使用$ _COOKIE ['name']在PHP中訪問它。
為了簡化起見,請將其添加到文檔的開頭:
<script type="text/javascript">
function set_cookie ( cookie_name, cookie_value, lifespan_in_days, valid_domain )
var domain_string = valid_domain ? ("; domain=" + valid_domain) : '' ;
document.cookie = cookie_name + "=" + encodeURIComponent( cookie_value ) +
"; max-age=" + 60 * 60 * 24 * lifespan_in_days +
"; path=/" + domain_string ;
}
</script>
然后用set_cookie( "origin", pos.coords.latitude+","+pos.coords.longitude, 7 );
替換document.getElementById("form-id").submit()
set_cookie( "origin", pos.coords.latitude+","+pos.coords.longitude, 7 );
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.