Intereting Posts
Определите PHP-функцию в XSL и вызовите ее. Возможное? Как? mysqli_real_escape_string И подготовленные операторы? .htaccess: нет указанного входного файла Как я могу рассчитать линию тренда в PHP? Почему, если я зарегистрировался на своем веб-сайте как зарегистрированный пользователь, я не могу получить доступ к другим страницам после установки правил сеанса? Laravel – передать аргументы в php artisan down Восклицательный знак перед переменным – требуется разъяснение PHP – отправить файл пользователю могу ли я отметить уведомление как уже прочитанное, используя график api? Лучшая практика PHP отслеживает зарегистрированных пользователей Контроллеры двигателей выражений MailChimp API v2: ошибка проверки Почему Yii вызывает метод login () при создании модели входа в систему Как открыть календарь Outlook с помощью электронной почты или веб-страницы? Magento – добавить пользовательское массовое действие PDF

Отправить данные POST на PHP без использования HTML-формы?

Нужно ли отправлять почтовые данные в php-скрипт, кроме формы? (Конечно, не использовать GET).

Я хочу, чтобы javascript перезагружал страницу через X секунд и отправлял некоторые данные на страницу одновременно. Я мог бы сделать это с помощью GET, но я предпочел бы использовать POST, поскольку он выглядит более чистым.

Большое спасибо.

EDIT: Можно ли сделать это с заголовком PHP? Я уверен, что лучше использовать JQuery, но для моей текущей ситуации я мог бы реализовать это намного проще и быстрее:)

ура

Я закончил так:

<script> function mySubmit() { var form = document.forms.myForm; form.submit(); } </script> ... <body onLoad="mySubmit()";> <form action="script.php?GET_Value=<?php echo $GET_var ?>" name="myForm" method="post"> <input type="hidden" name="POST_Value" value="<?php echo $POST_Var ?>"> </form> </body> 

Кажется, все отлично работает для меня, но, пожалуйста, скажите, что с этим что-то не так!

Всем спасибо.

Как было указано выше, вот как вы могли бы динамически добавлять скрытую форму и отправлять ее, когда хотите обновить страницу.

Где-то в вашем HTML:

 <div id="hidden_form_container" style="display:none;"></div> 

И некоторые Javascript:

 function postRefreshPage () { var theForm, newInput1, newInput2; // Start by creating a <form> theForm = document.createElement('form'); theForm.action = 'somepage.php'; theForm.method = 'post'; // Next create the <input>s in the form and give them names and values newInput1 = document.createElement('input'); newInput1.type = 'hidden'; newInput1.name = 'input_1'; newInput1.value = 'value 1'; newInput2 = document.createElement('input'); newInput2.type = 'hidden'; newInput2.name = 'input_2'; newInput2.value = 'value 2'; // Now put everything together... theForm.appendChild(newInput1); theForm.appendChild(newInput2); // ...and it to the DOM... document.getElementById('hidden_form_container').appendChild(theForm); // ...and submit it theForm.submit(); } 

Это эквивалентно отправке этой HTML-формы:

 <form action="somepage.php" method="post"> <input type="hidden" name="input_1" value="value 1" /> <input type="hidden" name="input_2" value="value 2" /> </form> 

Вы можете использовать JQuery для публикации на php-страницу: http://api.jquery.com/jQuery.post/

Как насчет этого:

  function redirectWithPostData(strLocation, objData, strTarget) { var objForm = document.createElement('FORM'); objForm.method = 'post'; objForm.action = strLocation; if (strTarget) objForm.target = strTarget; var strKey; for (strKey in objData) { var objInput = document.createElement('INPUT'); objInput.type = 'hidden'; objInput.name = strKey; objInput.value = objData[strKey]; objForm.appendChild(objInput); } document.body.appendChild(objForm); objForm.submit(); if (strTarget) document.body.removeChild(objForm); } 

используйте следующее:

 redirectWithPostData('page.aspx', {UserIDs: getMultiUserSelectedItems()},'_top'); 

По jQuery:

 $.ajax({ url: "yourphpscript.php", type: "post", data: json/array/whatever, success: function(){ // trigger when request was successfull window.location.href = 'somewhere' }, error: anyFunction // when error happened complete: otherFunction // when request is completed -no matter if the error or not // callbacks are of course not mandatory }) 

или простейшим:

 $.post( "yourphpscript.php", data, success_callback_as_above ); 

больше на http://api.jquery.com/jQuery.ajax

Вы можете отправить запрос xhr с данными, которые вы хотите опубликовать, до перезагрузки страницы.

И перезагрузите страницу, только если запрос xhr завершен.

Поэтому в основном вы хотели бы выполнить синхронный запрос.

Создайте свой собственный заголовок, как таковой:

 POST /submit.php HTTP/1.1 Host: localhost User-Agent: Mozilla/4.0 Content-Length: 27 Content-Type: application/x-www-form-urlencoded userId=admin&password=letmein 

Используйте API FormData .

Из примера:

 var formData = new FormData(); formData.append("username", "Groucho"); formData.append("accountnum", 123456); var request = new XMLHttpRequest(); request.open("POST", "http://foo.com/submitform.php"); request.send(formData);