2014-09-11 2 views
1

У меня есть веб-форма, в которой есть календарь и кнопка отправки. При нажатии этой кнопки «Отправить» мне нужно передать значение выбранной даты на другую страницу. Я пытаюсь достичь этого, используя jquery. Однако, похоже, он не работает.Невозможно передать переменную с html на php-страницу с помощью jquery

Я не использую метод Post в форме, так как у меня будет несколько кнопок отправки на этой странице.

Моя первая страница form.php

Код

<html> 
<head> 
    <script language="javascript" type="text/javascript" src="javascript/datetimepicker.js"></script> 
    <script type="text/javascript" src="javascript/jquery-1.11.1.js"></script> 
    <script> 
     $(document).ready(function(){ 

       $('#submit').on("click", function(e){    
       var datevalue = $('#selecttime').val(); 
       $.ajax({ 
        type: "POST", 
        url: "displayer.php", 
        data: "value="+datevalue, 

        success: function(data) { 
          window.location.href = "displayer.php"; 
        } 
       }); 

      }); 
    </script> 
</head> 
    <body> 
     <form action="" method="post"> 
      <label for="datetime" >Select date and time:</label> 
      <input type="text" name = "selecttime" id="selecttime" size="30"/> <a href="javascript:NewCal('selecttime','ddmmyyyy',true)"><img src="images/cal.gif" width="16" height="16" border="0" alt="Pick a date"></a> 
      <input type="submit" name="submit" id="submit" /> 
     </form> 
    </body> 
</html> 

На второй странице, displayer.php Я просто хочу, чтобы отобразить дату и время значение, которое передается с первой страницы, а позже продолжить обработку.

$get_time = S_POST[value]; 
echo $get_time; 

Однако, похоже, что это не работает даже после попытки отладки его в течение нескольких часов.

Пожалуйста, дайте мне знать, где я ошибся и что нужно изменить.

Заранее спасибо.

+0

Что вы пытаетесь достичь? Ваш текущий код сделает вызов AJAX, а затем перенаправляется на другую страницу. – Shomz

+0

Вы открыли инструменты разработчика браузера и смотрели запрос/ответ в консоли? –

+1

Почему бы просто не использовать 'action =" displayer.php "в форме, а затем получить доступ к $ _POST ['selecttime']'? Вызов AJAX не то, что вы хотите (displayer.php не сохраняет значения, которые вы передали в вызове AJAX). – ioums

ответ

0

Вы смешиваете AJAX с обратной передачей/полным обновлением страницы.

В настоящее время ваш код выполняет запрос AJAX к displayer.php, ничего не делает с возвращенными данными, а затем перенаправляет на displayer.php (побеждает цель AJAX). Когда вы перенаправляете, displayer.php не запоминает значения, которые вы опубликовали.

Try что-то вроде:

<body> 
    <form action="displayer.php" method="post"> 
     <label for="datetime" >Select date and time:</label> 
     <input type="text" name = "selecttime" id="selecttime" size="30"/> <a href="javascript:NewCal('selecttime','ddmmyyyy',true)"><img src="images/cal.gif" width="16" height="16" border="0" alt="Pick a date"></a> 
     <input type="submit" name="submit" id="submit" /> 
    </form> 
</body> 

Который будет отправлять сообщения displayer.php и немедленно загрузить страницу.

Избавиться от обработчика щелчка полностью

0

Я не использую действие = «displayer.php» в виде тега, как я буду иметь несколько кнопок на той же странице. Каждое нажатие кнопки должно выполнять разные функции.

Если вышеуказанный код является неправильным способом достижения этого, не могли бы вы рассказать, как мне нужно это делать. В основном мне нужно передать значение текстового поля на следующую страницу 'displayer.php', где он будет обработан и сохранен в базе данных.

Смежные вопросы