#php #javascript #jquery #post
#php #javascript #jquery #Публикация
Вопрос:
Я отправляю данные из pagex.php для pagey.php через jQuery post.
pagex.php содержит
$('#btn').click(function(e) {
e.preventDefault();
var x = 'variable1';
var y = 'variable2';
$.post("/pagey.php", { var1: x, var2: y}, function(data) {});
});
pagey.php содержит
<form action=....>
<input type="text" name="x" value="<?php echo $_POST['var1'] ?>" />
<input type="text" name="y" value="<?php echo $_POST['var2'] ?>" />
<input id="submit" type="submit" value="submit" />
<script type="text/javascript">$('#submit').trigger('click')</script>
Итак, в основном, когда я публикую значения из pagex.php для pagey.php я хочу автоматически отправлять форму на pagey.php . Строка jQuery в конце pagey.php вызовет автоматический щелчок по кнопке отправки. Однако jQuery не запускает щелчок отправки. это работает, если я получаю доступ paygey.php напрямую (я пробовал это с заранее определенными переменными), но не с помощью $.post из pagex. Я предполагал, что при использовании $.post
из pagex страница pagey должна автоматически получать значения и запускать отправку jQuery. В чем здесь проблема.
Комментарии:
1. используйте консоль, чтобы увидеть отправляемые события и значения
2. @mls Значения post отправляются правильно. Это триггер щелчка, который не работает. Это работает, только если доступ к странице осуществляется напрямую через браузер.
3. тогда проблема существует в идентификаторе кнопки
4. используйте правильный идентификатор, найдите его на консоли, $(«#correctid»).live(триггер, функция(e){}); должно сработать
Ответ №1:
JavaScript (который поддерживает jQuery) запускается не на сервере, а из браузера вашего пользователя. Итак, насколько я понимаю, для запуска этого небольшого фрагмента скрипта вам придется фактически отправлять своих пользователей в pagey.php
Комментарии:
1. Верно, но вы можете запустить этот код, вставив возвращенный документ в текущий, запустив таким образом javascript. Но это может иметь другие сложности…
2. @JavaJosh94, итак, каким образом я могу автоматически отправить форму без прямого доступа к странице.
3. @Pinkie — это pagey.php действительно необходимо? Почему бы вам просто не опубликовать непосредственно в pagey.php url действия формы?
4. @Pinkie если ваши пользователи никогда не увидят pagey.php Я не вижу в этом смысла. Вместо передачи значений в pagey.php вы должны передать их из pagex.php на ту же страницу, что и у вас pagey.php отправить в.
5. Странная штука. Я согласен с JavaJosh94. С какой стати вам нужно pagey.php отправлять самому себе? Я имею в виду, что могло бы pagey.php скажите себе, что он не знал в первый раз, прежде чем публиковать самому себе. (в основном, что говорит JavaJosh94, это «вы делаете это неправильно»).
Ответ №2:
<input type="text" name="x" value="<?php echo $_POST[var1] ?>" />
<input type="text" name="y" value="<?php echo $_POST[var2] ?>" />
должно быть
<input type="text" name="x" value="<?php echo $_POST['var1'] ?>" />
<input type="text" name="y" value="<?php echo $_POST['var2'] ?>" />
Вам нужно исправить индексы вашего массива.
Комментарии:
1. да, у меня уже есть подобное. это была опечатка в моем вопросе. Я упоминал, что это работает, если я обращаюсь к pagey.php напрямую.
2. Работает ли это:
$.post("/pagey.php", { var1: 'variable1', var2: 'variable2'}, function(data) {});
?3. Это та же строка, что и мой код, поскольку он у меня есть. Что изменилось??
Ответ №3:
вы должны опубликовать непосредственно URL действия на странице… какова ценность pagey, если это простая форма, которая автоматически публикует.
простой ответ — создать форму post в document.ready на странице…
Ответ №4:
Я думаю, что более важный вопрос заключается в том, почему вы отправляете данные на страницу, если вы просто повторно отправляете их на другую страницу, используя свое действие формы?
Попробуйте опубликовать данные непосредственно на странице действий и дайте нам знать, сработает ли это.
Ответ №5:
Бьюсь об заклад, это будет полезно некоторым из вас. С уважением.
<?php
echo
"<script type='text/javascript'>
$(document).ready(function() {
$('#submit').trigger('click');
});
</script>";
?>