PHP POST变量为空
我的问题是,我试图通过POST/GET推送一个参数,这个参数被传递给coode bellow中的js函数,所有这些文件都在同一个目录中 你的帮助,回答。致以最良好的祝愿PHP POST变量为空,php,javascript,post,Php,Javascript,Post,我的问题是,我试图通过POST/GET推送一个参数,这个参数被传递给coode bellow中的js函数,所有这些文件都在同一个目录中 你的帮助,回答。致以最良好的祝愿 <div id="sidebar"> <?php include('showContent.js'); ?> <ul> <li> <h2>TITLE</h2> <ul> <li><a oncli
<div id="sidebar"> <?php include('showContent.js'); ?>
<ul>
<li>
<h2>TITLE</h2>
<ul>
<li><a onclick="showContent('1');">Link1</a></li>
<li><a onclick="showContent('2');">Link2</a></li>
<li><a onclick="showContent('3');">Link3</a></li>
</ul>
</li>
</ul>
</div>
-
标题
- 链接1
- 链接2
- 链接3
showContent.js
<script>function showContent(cId)
{
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
document.getElementById("contentArea").innerHTML=xmlhttp.responseText;
}
}
xmlhttp.open("POST","contact/sendContent.php?cId="+cId,true);
xmlhttp.send();
}
功能显示内容(cId)
{
if(window.XMLHttpRequest)
{//IE7+、Firefox、Chrome、Opera、Safari的代码
xmlhttp=新的XMLHttpRequest();
}
其他的
{//IE6、IE5的代码
xmlhttp=新的ActiveXObject(“Microsoft.xmlhttp”);
}
xmlhttp.onreadystatechange=函数()
{
if(xmlhttp.readyState==4&&xmlhttp.status==200)
{
document.getElementById(“contentArea”).innerHTML=xmlhttp.responseText;
}
}
open(“POST”,“contact/sendContent.php?cId=“+cId,true”);
xmlhttp.send();
}
sendContent.php
<?php
$cId=$_POST["cId"];
$tmp='error.php';
switch ($cId) {
case 1:{
$tmp='contact.php';
break;
}
case 2:{
$tmp='idCard.php';
break;
}
case 3:{
$tmp='location.php';
break;
}
}
ob_start();
include($tmp);
echo ob_get_clean();
?>
附言:
您应该在文本编辑器的按钮上添加如何使用它们的提示,我花了很多时间研究如何使用这个糟糕的编辑器进行代码格式化
提示:按此按钮选择代码
当你知道的时候,这很容易,如果事情表现得不正常,那就很烦人 虽然您使用的是POST请求,但实际上并没有发布任何内容 由于附加了查询字符串,因此可以访问它
$cId=$_REQUEST["q"];
或
您遇到了几个问题:
-如前所述,您需要$\u GET或$\u REQUEST
-关闭JS文件中的脚本标记
-我对ob_start()不太熟悉,但echo工作得很好
-如果文件都在同一个文件夹中,则AJAX请求路径错误
以下是工作文件…
<html>
<body>
<div id="sidebar"> <?php include('showContent.js'); ?>
<ul>
<li>
<h2>TITLE</h2>
<ul>
<li><a onclick="showContent('1');">Link1</a></li>
<li><a onclick="showContent('2');">Link2</a></li>
<li><a onclick="showContent('3');">Link3</a></li>
</ul>
</li>
</ul>
</div>
<div id="contentArea">content area</div>
</body>
</html>
<script type="text/javascript">function showContent(cId)
{
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
document.getElementById("contentArea").innerHTML=xmlhttp.responseText;
}
}
xmlhttp.open("POST","sendContent.php?cId="+cId,true);
xmlhttp.send();
}
</script>
<?php
$cId=$_REQUEST["cId"];
$tmp='error.php';
switch ($cId) {
case 1:
$tmp='contact.php';
break;
case 2:
$tmp='idCard.php';
break;
case 3:
$tmp='location.php';
break;
}
echo $tmp;
?>
-
标题
- 链接1
- 链接2
- 链接3
内容区
功能显示内容(cId)
{
if(window.XMLHttpRequest)
{//IE7+、Firefox、Chrome、Opera、Safari的代码
xmlhttp=新的XMLHttpRequest();
}
其他的
{//IE6、IE5的代码
xmlhttp=新的ActiveXObject(“Microsoft.xmlhttp”);
}
xmlhttp.onreadystatechange=函数()
{
if(xmlhttp.readyState==4&&xmlhttp.status==200)
{
document.getElementById(“contentArea”).innerHTML=xmlhttp.responseText;
}
}
open(“POST”,“sendContent.php?cId=“+cId,true”);
xmlhttp.send();
}
如果您不随请求发送任何已发布的数据,您如何期望$\u帖子包含任何内容?您将请求发送到联系人/sendContent.php?q=“+contentId
,而您正在访问另一页上的CId
?应该是$\u帖子['q']
加上前面的评论,你在其他地方丢失了id='contentArea',天哪,检查一下这些案例
s是什么样子…当我在这个论坛粘贴代码时,我重新检查了几个不同的内容(这是不兼容的*名称),很抱歉错误的英文。脚本已关闭(错误的复制粘贴)。它现在可以工作:)反正是Thx。
<html>
<body>
<div id="sidebar"> <?php include('showContent.js'); ?>
<ul>
<li>
<h2>TITLE</h2>
<ul>
<li><a onclick="showContent('1');">Link1</a></li>
<li><a onclick="showContent('2');">Link2</a></li>
<li><a onclick="showContent('3');">Link3</a></li>
</ul>
</li>
</ul>
</div>
<div id="contentArea">content area</div>
</body>
</html>
<script type="text/javascript">function showContent(cId)
{
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
document.getElementById("contentArea").innerHTML=xmlhttp.responseText;
}
}
xmlhttp.open("POST","sendContent.php?cId="+cId,true);
xmlhttp.send();
}
</script>
<?php
$cId=$_REQUEST["cId"];
$tmp='error.php';
switch ($cId) {
case 1:
$tmp='contact.php';
break;
case 2:
$tmp='idCard.php';
break;
case 3:
$tmp='location.php';
break;
}
echo $tmp;
?>