我在表達式引擎(1.6.8)模板中發佈表單。我正在使用jQuery來做,但也嘗試過HTML表單 - 結果相同。發佈表單後,PHP超全局$ _POST爲空,即使我的模板上已啓用PHP(在包含處理模板上的表單和輸出的模板的輸入上),並且可以在Firebug中看到POST變量。
任何人都可以提出什麼可能會導致此?
<html>
<head>
<script type="text/javascript" src="/_scripts/jquery-1.6.1.min.js"></script>
</head>
<body>
<form action="/select-locale/processing" method="POST">
<input type="text" name="test"/>
<input type="submit" name="submit" value="submit">
</form>
<a id="test" href="">link</a>
<script type="text/javascript">
$(function(){
$('#test').bind('click', function(e){
e.preventDefault();
var path = "/select-locale/processing"
var form = $('<form/>');
form.attr("method", "post");
form.attr("action", path);
var field = $('<input></input>');
field.attr("type", "hidden");
field.attr("name", 'locale');
field.attr("value", 'NZ');
form.append(field);
$('body').append(form);
form.submit();
});
});
</script>
</body>
</html>
服務器端代碼(繼承,而不是我自己):
<?php
var_dump($_POST);
var_dump($_GET);exit;
if (! isset($_POST['locale']))
{
$locale = FALSE;
$returnPage = "/";
}
else
{
$locale = $_POST['locale'];
$returnPage = $_POST['returnPage'];
}
if (isset($_GET['locale'])) {
$locale = $_GET['locale'];
$returnPage = "/";
?>
{exp:cookie_plus:set name="cklocale" value="<?php echo $locale;?>" seconds="2678400"}
{exp:session_variables:set name="userLocale" value="<?php echo $locale;?>"} <?php
}
?>
{exp:cookie_plus:set name="cklocale" value="<?php echo $locale;?>" seconds="2678400"}
{exp:session_variables:set name="userLocale" value="<?php echo $locale;?>"}
{exp:session_variables:get name="testSession"}
{if '{exp:session_variables:get name="testSession"}'=='yes' }
{redirect="<?php echo $returnPage;?>"}
{if:else}
{redirect="/nocookies/"}
{/if}
不知道,好像形式是越來越提交兩次,因爲jquery函數中的表單標籤或誓言值的任一操作屬性 – 2012-03-02 10:47:31
誓約值是什麼? – codecowboy 2012-03-02 10:58:05
其授權密鑰要求進行識別,一般追加在url – 2012-03-02 10:59:08