Получить значение поля ввода на той же странице, не обновляя php страницы - PullRequest
0 голосов
/ 12 декабря 2018

Я пытаюсь отправить свое входное значение в сегмент кода на той же странице, но это не работает.Прямо сейчас я не могу получить значение в сегменте кода.Это мой текущий код:

<?php
if ($section == 'codesegment') {
if ($_GET['hour']) {
echo $_GET['hour'];
//here i want call my method to update db with this value of hour...
}
if ($section == 'viewsegment') {
?>
<form id="my_form" action="#" method="Get">
<input name="hour" id="hour" type="text" />
<input id="submit_form" type="submit" value="Submit" />
</form>


<script>
var submit_button = $('#submit_form');

submit_button.click(function() {

var hour = $('#hour').val();
var data = '&hour=' + hour;


$.ajax({
    type: 'GET',
    url: '',
    data: data,   
    success:function(html){
       update_div.html(html);
    }
});
});
</script>

Любой совет?

Ответы [ 4 ]

0 голосов
/ 12 декабря 2018

Невозможно сделать на той же странице.Вы можете написать вызов ajax на другую страницу с данными, где вы можете выполнять функции с данными.

Примерно так:

// form.php

<form id="hour-form">
   <input type="text" name="hour" id="hour">
   <input type="submit" name="hour-submit" >
</form>
<script type="text/javascript">
   $(document).ready(function(){
       $(document).on('submit', '#hour-form', function(e){
           e.preventDefault();
           var data = $('#hour').val();
           $.ajax({
               url: "post.php",
               method: "POST",
               data: {'hour':data},
               success: function(data)
               {
                 //if you want to do some js functions
                 if(data == "success")
                 {
                    alert("Data Saved");
                 }
               }
           });
       });
   });

// post.php

if(isset($_POST['hour']))
{
   // do the php functions
   echo "success";
}
0 голосов
/ 12 декабря 2018

Всякий раз, когда вы используете

<input type="submit">

, он отправляет данные в действие формы, поэтому всякий раз, когда вы нажимаете кнопку отправки до вызова функции onclick, она отправляетданные к действию и страница обновляется.Поэтому вместо использования элемента ввода попробуйте что-то вроде этого

<button id="submit_form"> Submit </button>
0 голосов
/ 12 декабря 2018

две вещи, 1. как сказал еш, вам нужно изменить ввод ввода на button type=button и добавить функцию onClick для этой кнопки.Или вы можете задать функцию javascript внутри строки функции function sampleFn(){} и вызвать эту функцию onSubmit формы.2. Вам необходимо указать функцию javascript внутри document.ready, так как скрипт выполняется до загрузки dom, и var submit_button = $('#submit_form'); может не быть найден.В этом случае будет ошибка в консоли браузера.

Попробуйте добавить ошибки в сообщение, так как это поможет легко отладить.

0 голосов
/ 12 декабря 2018

Если вы хотите получить значение без обновления вашей страницы, вы должны использовать javascript, вы можете попробовать это:

$('#hour').onchange = function () {
    //type your code here
}

Кстати, ваш PHP-скрипт на стороне сервера, в соответствии с этим, вынельзя использовать значение без записи / отправки / обновления

...