在不刷新页面php的情况下获取同一页面中的输入字段值

时间:2018-12-12 09:14:43

标签: javascript php ajax form-submit

我正在尝试将输入值发送到同一页面中的代码段,但是它不起作用。现在,我无法在代码段中获取该值。这是我当前的代码:

<?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 :(得分:0)

如果要获取值而不刷新页面,则必须使用javascript,您可以尝试以下操作:

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

顺便说一句,您的php脚本是服务器端的,因此,如果没有post / submit / refresh,您将无法使用该值

答案 1 :(得分:0)

无论何时使用

<input type="submit">

它将数据发送到表单的 action ,因此,只要您在调用onclick函数之前单击提交按钮,就会将数据发送到action并刷新页面。因此,不要使用输入元素,而是尝试类似

<button id="submit_form"> Submit </button>

答案 2 :(得分:0)

两件事,  1.正如Yesh所说,您需要将输入Submit更改为button type=button并在该按钮上添加一个onClick函数。或者,您可以在函数行function sampleFn(){}中提供javascript函数,然后调用形式为onSubmit的函数。  2.您需要在document.ready函数中添加javascript,因为脚本在dom加载之前执行,并且可能找不到var submit_button = $('#submit_form');。在这种情况下,浏览器控制台中将出现错误。

尝试在帖子中添加错误,因为这将有助于轻松调试。

答案 3 :(得分:0)

无法在同一页面上执行。您可以将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";
}