从输入中检索值并将其发布在同一 PHP 中

Retrieve value from input and post it in the same PHP

本文关键字:PHP 检索 输入      更新时间:2023-09-26

我想读取输入框中的值,并在此基础上创建(在同一文件中使用 PHP)一些下拉框。尝试了几个小时后,我找不到执行此操作的方法。

HTML 输入字段

<input type="text" onblur="sendData(this.value)" name="ingr_count" id="ingr_count" pattern="'d*" />

我有这个 JS/AJAX 来读取值并将其发布在 PHP 中

function sendData(obj) {
            var xmlhttp;
            if (window.XMLHttpRequest) {
                xmlhttp=new XMLHttpRequest();
            } else {
                xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
            }
            xmlhttp.onreadystatechange=function() {
                if (xmlhttp.readyState==4 && xmlhttp.status==200) {
                    alert(obj);
                    // Do stuff when script returns
                }
            }
            xmlhttp.open("POST","script.php?count=" + obj.value + "&t="+Math.random(),true);
            xmlhttp.send();
        }

我也有这个PHP来读取值

$src1= $_POST['count'];  
echo $src1; 

注释掉下面的所有内容 var XMLhttp;提醒 obj 会提醒 obj,但如果我取消注释,它甚至不会提醒值!:O .

在@Mura和@Fred-ii的评论之后,我设法完成了我的AJAX代码。问题是当我收到值时,我无法在 PHP 中使用它。因此,当我在 AJAX 上读取值时,我创建了一个 cookie 并将输入框值存储在其中,然后刷新 PHP 的内容。所以最终的代码类似于下面。

该目录

<input type="text" onblur="sendData(this.value)" name="ingr_count" id="ingr_count" pattern="'d*" />

JS/AJAX

function sendData(obj) {
            var xmlhttp;
             alert (obj);
            if (window.XMLHttpRequest) {
                xmlhttp=new XMLHttpRequest();
            } else {
                xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
            }
            xmlhttp.onreadystatechange=function() {
                if (xmlhttp.readyState==4 && xmlhttp.status==200) {
                    alert(obj);
                    // Do stuff when script returns
                }
            }

            document.cookie="count="+ obj;
            alert (obj);
            var x = document.cookie;
            alert (x);
            $("#main").load("script.php");
        }

菲律宾比索

if (isset($_COOKIE["count"])){
 $src1= $_COOKIE["count"];
   echo $src1;
 setcookie('count', '', time()-300); 
} else { do whatever you want   }