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

时间:2015-01-01 22:06:15

标签: javascript php jquery html ajax

我想读取输入框中的值,并根据该值创建(在同一文件中使用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。

1 个答案:

答案 0 :(得分:0)

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

HTML

<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");

        }

PHP

if (isset($_COOKIE["count"])){

 $src1= $_COOKIE["count"];

   echo $src1;

 setcookie('count', '', time()-300); 
} else { do whatever you want   }