Запуск jQuery через $.post

#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>";
?>