尝试从 AJAX 中的文本框获取价值并将其发送到新页面

Posted

技术标签:

【中文标题】尝试从 AJAX 中的文本框获取价值并将其发送到新页面【英文标题】:Trying to get value from textbox in AJAX and sending it to the new page 【发布时间】:2019-04-10 05:00:58 【问题描述】:

在使用 ajax 提取文本框中的值并将它们发布到另一个 .php 文件时遇到问题。我以前用复选框做过一次,但无法复制我的结果。这是问题中文本框的代码。

<div align = "right">
    <div class = ='text'>
    <span style="float:right;"><strong> Status Report Date</strong> 


    <label for="from">From</label>
    <input type="text" id="from" name="from">
    <label for="to">to</label>
    <input type="text" id="to" name="to">
    <div id="dates"></div>

这些是我的日期选择器框,因为我将日期选择器脚本附加到它们,但认为它们充当普通文本框。

这是从文本框中获取值的脚本

 $(document).ready(function()  
    $('input[type="text"]').click(function()  
       var from = $(this).val();  
       $.ajax(  
            url:"sortByDates.php",  
            method:"POST",  
            data:text:text,  
            success:function(data)  
                 $('#dates').html(data);  
              
       );  
      );  
 );   
 </script>

这是我试图将值发送到的 .php 文件。

   <?php
    if (isset($_GET['pageSubmit'])) 
   $firstDate= $_POST['from'];
$lastDate= $_POST['to'];

   echo $firstDate;
   echo $lastDate;

  

【问题讨论】:

【参考方案1】:

我认为您失去了注意力...检查此代码

<div alight = "right">
<div class='text'>
<span ><strong> Status Report Date</strong> 
<label for="from">From</label>
<input type="text" id="from" name="from">
<label for="to">to</label>
<input type="text" id="to" name="to">
<div id="dates"></div>
<button id="submit">click</button>

jQuery

<script>
 $(document).ready(function()  
    $('#submit').click(function()  
        var from = $('#from').val();  
        var to = $('#to').val(); 
         ps = "submit";




     $.ajax(  
            url:"sortByDates.php",  
            method:"POST",  
            data:pageSubmit: ps,from:from, to: to,  
            success:function(data)  
                 $('#dates').html(data);  
              
       );  
      );  
 );   

php 脚本

<?php
   if (isset($_POST['pageSubmit'])) 
        $firstDate= $_POST['from'];
        $lastDate= $_POST['to'];
        echo $firstDate;
        echo $lastDate;

  
?>

【讨论】:

这几乎成功了!第一个日期正确传递,但第二个值丢失并且没有赋值 无法将两个文本框都传递给 php 文件。只有当我单击第一个文本框时,我才能发送该值。第二个文本框不发送值 你可以像你想要的那样发送第一个文本框值..但它会抛出一个错误..因为 post action php 文件需要两个数据字段但你发送它一个字段是“来自“...但是您可以根据需要发送第一个值...通过更改此 $('#from').on(function() 或 $('#from').change(function() 很抱歉,您能否更清晰地格式化您的文本。我不是很熟悉 ajax 检查 w3schools.com .. 他们只是初学者级别的教程中最好的.. 在 ajax "data:pageSubmit: ps,from:from, to: to 中," 这行表示数据您发送到页面...这里 pageSubmit, from, to 是变量名(之前 : )和冒号(:) 之后是每个变量的值...【参考方案2】:

首先在输入中添加 value=""

然后在您的 js 代码中,您发送的是未定义的“文本”变量,因为您的变量是“来自”。

所以尝试添加:data:text:from

【讨论】:

当我尝试回显时,没有任何值传递给任一变量 \ 您是否检查过 $_POST 变量中是否有任何内容?如果不是,则意味着没有发布数据。然后检查 js 代码,如果你在那里得到值。然后尝试添加一个按钮元素,点击它,数据应该被发布 参考标记的答案和它下面的评论。这就是我现在面临的问题 你得到js代码中“to”的值了吗?同样首先 console.log 在 ajax 中的成功函数中的“数据”变量,你是否得到那里的值(在成功函数中)? 当我点击第一个文本框两次时,“to”的值被传递:/【参考方案3】:

您尚未在 ajax 中传递 from、to 和 pagesubmit 的值。试试这段代码,希望对您有所帮助 在ajax中

$(document).ready(function()  
        $('input[type="text"]').click(function()  
           var from = $("#from").val(); 
           var to = $("#to").val();  
           $.ajax(  
                url:"sortByDates.php",  
                method:"POST",  
                data:from:from,to:to,pageSubmit:1,  
                success:function(data)  
                     $('#dates').html(data);  
                  
           );  
          );  
     );   

在 PHP 中

<?php
    if (isset($_GET['pageSubmit'])) 
        $firstDate= $_POST['from'];
        $lastDate= $_POST['to'];
        echo $firstDate;
        echo $lastDate;

  
?>

【讨论】:

不幸的是对我不起作用:/我现在将 PHP 中的日期变量传递给我的数据库,并且两个值都为 0。仍然无法打印【参考方案4】:

您在该部分中使用的变量“文本” 文本:文本 未定义。因此,不会发送任何数据。

除此之外还有其他问题,您希望发送两个值吗?您的代码看起来不支持它。您确定要在用户单击文本框时发生这种情况吗?

【讨论】:

基本上当用户单击该文本框上的日期选择器对象时

以上是关于尝试从 AJAX 中的文本框获取价值并将其发送到新页面的主要内容,如果未能解决你的问题,请参考以下文章

如何从文本框中获取值并将其分配给 Xcode 中的整数变量?

如何从文本框中获取数据并将其添加到 dataTable?

如何将信息从 MapKit 注释发送到新的视图控制器

将数据从文本框发送到 Flask?

用户覆盖 input.text 值

Android Studio 从 Textfield 获取价值并将其插入 API url