Javascript 现在我';我已经将内容发布到我的PHP脚本中,如何获取它?
我发布的内容代码如下:Javascript 现在我';我已经将内容发布到我的PHP脚本中,如何获取它?,javascript,php,ajax,post,xmlhttprequest,Javascript,Php,Ajax,Post,Xmlhttprequest,我发布的内容代码如下: function checkphp() { var xml = new XMLHttpRequest(); xml.open("POST", 'testphp.php'); xml.setRequestHeader("Content-type","application/x-www-form-urlencoded"); xml.send('alame=Henry'); xml.onreadystatechange = functio
function checkphp() {
var xml = new XMLHttpRequest();
xml.open("POST", 'testphp.php');
xml.setRequestHeader("Content-type","application/x-www-form-urlencoded");
xml.send('alame=Henry');
xml.onreadystatechange = function() {
if (xml.readyState == 4 && xml.status == 200) {
document.body.innerHTML = xml.responseText;
}
}
}
我试过这个:
echo($_POST['alame']) or die("Nothing was posted");
但它不起作用。。。它吐出“1”。有什么建议吗 我测试了您的脚本,我们可以看到testphp.php这样的消息:
<?php
//
//var_dump($_POST);
//echo($_POST['alame']) or die("Nothing was posted");
//
echo $_POST['alame'];
?>
返回1
echo在此处用作函数,但不能用作函数,请参见:
echo实际上不是一个函数(它是一种语言构造),因此
不需要使用括号。回声(与其他声音不同)
语言构造)的行为不像函数,因此它不能
始终在函数的上下文中使用
所以在这种情况下,1是一个不可预测的结果,我无法解释
或者您可以使用以下选项:
echo isset($_POST['alame']) ? $_POST['alame'] : "Nothing was posted";
我测试了您的脚本,我们可以通过testphp.php看到您的消息,如下所示:
<?php
//
//var_dump($_POST);
//echo($_POST['alame']) or die("Nothing was posted");
//
echo $_POST['alame'];
?>
返回1
echo在此处用作函数,但不能用作函数,请参见:
echo实际上不是一个函数(它是一种语言构造),因此
不需要使用括号。回声(与其他声音不同)
语言构造)的行为不像函数,因此它不能
始终在函数的上下文中使用
所以在这种情况下,1是一个不可预测的结果,我无法解释
或者您可以使用以下选项:
echo isset($_POST['alame']) ? $_POST['alame'] : "Nothing was posted";
您得到的是
1
,因为PHP正在回显($\u POST['alname'])(true
)或die的值
在JavaScript等语言中,您可能会期望出现不同的行为:
// In JS
var someVal = false;
var somethingElse = someVal || "fallback";
console.log(somethingElse); // "fallback"
然而,在PHP中,整个表达式都是经过计算的,所以
// In PHP
$someVal = false;
$somethingElse = $someVal || "fallback";
echo $somethingElse; // 1
$someVal | | |“fallback”
的计算结果为true,因为PHP将它们归结为(false | | true)=>true
@jacouh错误地认为,获取1
是不可预测的,但您应该以不同的方式检查变量,如三元或类似的方法,例如
if(!isset($_POST['alame']))
die("Noting was posted");
// Continue and do something with $_POST['alame'];
您得到的是
1
,因为PHP正在回显($\u POST['alname'])(true
)或die的值
在JavaScript等语言中,您可能会期望出现不同的行为:
// In JS
var someVal = false;
var somethingElse = someVal || "fallback";
console.log(somethingElse); // "fallback"
然而,在PHP中,整个表达式都是经过计算的,所以
// In PHP
$someVal = false;
$somethingElse = $someVal || "fallback";
echo $somethingElse; // 1
$someVal | | |“fallback”
的计算结果为true,因为PHP将它们归结为(false | | true)=>true
@jacouh错误地认为,获取1
是不可预测的,但您应该以不同的方式检查变量,如三元或类似的方法,例如
if(!isset($_POST['alame']))
die("Noting was posted");
// Continue and do something with $_POST['alame'];
定义“不起作用”。有什么事发生吗?你收到错误信息了吗?你检查过服务器日志了吗?是否有相关的消息?如果您的testphp.php是一个好脚本,那么调用的html文档应该显示此内容“Henry”。此问题似乎与主题无关,因为它涉及一个无法复制的问题。请定义“不起作用”。有什么事发生吗?你收到错误信息了吗?你检查过服务器日志了吗?那里有相关的消息吗?如果您的testphp.php是一个很好的脚本,那么调用的html文档应该显示“Henry”这一内容。这个问题似乎与主题无关,因为它涉及一个无法复制的问题。我猜为什么会出现
echo()
返回1表示传递的语句被计算为布尔值-echo(true或die())
会给出一个真实的(1)返回。但是PHP::echo不会返回任何东西,请测试$i=echo(“这很糟糕”);发生错误。值1仍然是一个谜。+1您还提到echo确实不是一个函数-它被“处理”为语法,但实际上($_POST['alame'])只是它自己的-echo('something')
仍然回显“something”,因为(and)在这个上下文中对PHP来说并不重要,除了在算术中作为分隔符-回显(4/2)+3;//5
echo()返回1的原因我猜想是传递的语句被计算为布尔值-echo(true或die())
会给出一个真实的(1)返回。但是PHP::echo不会返回任何东西,请测试$i=echo(“这很糟糕”);发生错误。值1仍然是一个谜。+1您还提到echo确实不是一个函数-它被“处理”为语法,但实际上($_POST['alame'])只是它自己的-echo('something')
仍然回显“something”,因为(and)在这个上下文中对PHP来说并不重要,除了在算术中作为分隔符-回显(4/2)+3;//5