PHP получить данные JavaScript - объединить с формой POST? - PullRequest
0 голосов
/ 24 декабря 2010

У меня есть форма, которая отправляет некоторые данные в сценарий обработки PHP. Я также использую Google Map Javascript и хотел бы передать эти данные формы в сценарий обработки. Я должен сделать это через GET (так как javascript на стороне клиента), но действие формы должно быть POST для данных формы.

Могу ли я закодировать действие формы с данными переменной javascript, чтобы действовать как GET для сценария обработки?

Вот форма действия:

<form id="form1" name="form1" method="post" action="catchprocess.php">

Как передать данные javascript в catchprocess.php (как метод PHP GET?)

function saveData() {
      var name = escape(document.getElementById("name").value);
      var address = escape(document.getElementById("address").value);
      var type = document.getElementById("type").value;
      var latlng = marker.getLatLng();
      var lat = latlng.lat();
      var lng = latlng.lng();

      var url = "phpsqlinfo_addrow.php?name=" + name + "&address=" + address +
                "&type=" + type + "&lat=" + lat + "&lng=" + lng;
      GDownloadUrl(url, function(data, responseCode) {
        if (responseCode == 200 && data.length <= 1) {
          marker.closeInfoWindow();
          document.getElementById("message").innerHTML = "Location added.";
        }
      });
}

Ответы [ 2 ]

1 голос
/ 24 декабря 2010

@ user547794: Просто ... обмануть.

<form id="form1" name="form1" method="post" action="catchprocess.php?action=whatever">

Таким способом вы можете отправить данные POST и GET.: -)

0 голосов
/ 24 декабря 2010

Мне не совсем понятно, что вы пытаетесь сделать, но вот некоторые замечания, которые могут помочь.

Вам не нужно использовать клиентскую сторону GET - вы выбираете использовать GET с помощью GDownloadURL. Если вы кодируете свой собственный xmlHttpRequest, он может выдать POST (или HEAD, PUT, DELETE и OPTIONS). Использование xmlhttprequest напрямую не сложно (например, Goolge).

Как вы уже написали, данные, которые у вас есть в имени, адресе и типе, будут переданы в catchprocess.php. Он появится в $ _POST и $ _REQUEST.

Если вы хотите добавить данные, которые вы получаете из marker.getLatLng, просто используйте javascript, чтобы установить значение некоторых скрытых полей в форме. Ваша кнопка «отправить» должна вызвать подпрограмму javascript для установки этих значений, прежде чем она вызовет «Отправить» в форме. Это предоставит только последний набор данных.

Вызов gDownloadURL в phpsqlinfo_addrow.php, возможно, добавил данные всех вызовов в какую-либо базу данных (на самом деле я не знаю, что он делает). Если это так, то вы можете прочитать все данные с того места, где они были сохранены, и получить все записанные позиции.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...