Php 简单jquery post变量发送

Php 简单jquery post变量发送,php,jquery,variables,post,Php,Jquery,Variables,Post,我对代码的这一部分有一些问题: <script> function komenty(photoid) { var xmlhttp=new window.XMLHttpRequest(); xmlhttp.onreadystatechange=function() { if (xmlhttp.readyState==4 && xmlhttp.status==200) { var x = xmlhttp.respon

我对代码的这一部分有一些问题:

<script>
function komenty(photoid) {
    var xmlhttp=new window.XMLHttpRequest();
    xmlhttp.onreadystatechange=function() {
        if (xmlhttp.readyState==4 && xmlhttp.status==200) {
            var x = xmlhttp.responseText;
            $.post('main.php', {x: "foo"});
        }
    }
    xmlhttp.open("GET", "comments.php?id=" + photoid, true);
    xmlhttp.send();
}
</script>

函数komenty(photoid){
var xmlhttp=newwindow.XMLHttpRequest();
xmlhttp.onreadystatechange=函数(){
if(xmlhttp.readyState==4&&xmlhttp.status==200){
var x=xmlhttp.responseText;
$.post('main.php',{x:foo});
}
}
open(“GET”、“comments.php?id=“+photoid,true”);
xmlhttp.send();
}
我试图将此变量发送到同一页面上的php脚本main.php responseText不是空的,里面几乎没有字符串。 但在我的php脚本中,它说“变量x未定义”



我不确定我是否清楚地理解了jquery手册

您应该为AJAX调用使用与显示主页不同的脚本。或者
main.php
脚本需要检查是否使用
GET
POST
调用它

if ($_SERVER['REQUEST_METHOD'] == 'POST') {
    // Respond to AJAX call
    $x = $_POST['x'];
    echo $x;
} else {
    // Display normal HTML
    echo "<a href='#' class='my-button' onclick='komenty(".$photoid.")'>komentarze</a>";
}
if($\u服务器['REQUEST\u METHOD']=='POST'){
//响应AJAX调用
$x=$_POST['x'];
echo$x;
}否则{
//显示普通HTML
回声“;
}

如果更改为
{x:“foo”}
会发生什么?@Barmar相同:“注意:未定义的索引:第627行/main.php中的x”未定义的索引通常与POST变量关联,并且没有名称属性和/或表单元素的id。@Fred ii-他没有使用表单,他在使用AJAX。有没有什么方法可以让你不用调用
$.AJAX
就可以执行
main.php
?您是否曾使用浏览器直接访问脚本?正在执行else,但我不确定如何使用该信息:DGlad以查看找到的解决方案。很好。@Fred ii-这表明变量没有通过POST,对吗?那么它去了哪里XD@asdasdasd我不能告诉你。问巴尔马;-)@asdasdasd当您在浏览器中加载页面时,它是一个
GET
请求,而不是
POST
。您可以使用
$\u GET['paramname']
访问URL参数,例如
main.php?foo=bar
将设置
$\u GET['foo']
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
    // Respond to AJAX call
    $x = $_POST['x'];
    echo $x;
} else {
    // Display normal HTML
    echo "<a href='#' class='my-button' onclick='komenty(".$photoid.")'>komentarze</a>";
}