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