Показать сообщение отдельно
  #2 (permalink)  
Старый 18.05.2013, 00:57
Аватар для bes
bes bes вне форума
Профессор
Отправить личное сообщение для bes Посмотреть профиль Найти все сообщения от bes
 
Регистрация: 22.03.2012
Сообщений: 3,744

поясни смысл осуществления этой операции


думаю никак не отправить нужный тебе параметр, если ты хочешь вмешаться в последствия отправки формы, не вмешавшись в код этой отправки
хотя может есть способ

так никак, location.search новыми параметрами не заполнить, location.search изменяется после отправки формы, onunload не помогает, хотя здесь пишут, что можно http://javascript.ru/window-location (извращался по-всякому, у меня не вышло)

в нененавязчивом стиле some.php
<script>
function sendMyParam() {
	var str1 = '?my_param=my_value';
	var str2 = location.href.replace(location.search, '') + str1;
	location = str2
	window.location.search = '?my_param=my_value'; 
	console.log(str2);
	console.log("location.search=" + location.search);
}
</script>

<body onbeforeunload="return ''" onunload="sendMyParam()">
<form action"<?=$_SERVER['PHP_SELF']?>" onsubmit="sendMyParam()">
	<input name="a" value="pole">
	<input type="submit">
</form><br>

<?php
if (isset($_GET['my_param'])) echo $_GET['my_param']; else echo "no<br>";
if (isset($_GET['a'])) echo $_GET['a']; else echo "no";
?>



и так никак, хотя action меняется, параметр не приходит
<body onbeforeunload="return ''">
<?php
if (isset($_GET['my_param'])) echo "my_param=".$_GET['my_param'].'<br>'; else echo "no my_param<br>";
if (isset($_GET['a'])) echo "a=".$_GET['a'].'<br>'; else echo "no a<br>";
?>
<form action"some.php" onmousedown="this.action='some.php?my_param=my_value'"
	onsubmit="this.action='some.php?my_param=my_value'; return false">
	<input name="a" value="pole">
	<input type="submit">
</form>



но можно убрать name у полей и отправить в <input type="hidden"> value, которое сформировать так как тебе нужно

<body onbeforeunload="return ''">
<?php
if (isset($_GET['my_param'])) echo "my_param=".$_GET['my_param'].'<br>'; else echo "no my_param<br>";
if (isset($_GET['a'])) echo "a=".$_GET['a'].'<br>'; else echo "no a<br>";
?>
<form action"<?=$_SERVER['PHP_SELF']?>" onsubmit="this.my_param.value='my_value+' + this.a.value">
	<input name="a" value="pole">
	<input name="my_param" type="hidden">
	<input type="submit">
</form>

Последний раз редактировалось bes, 18.05.2013 в 01:05.
Ответить с цитированием