我的问题是我试图通过POST / GET推送一个参数,这个参数传递给coode bellow中的js函数,所有这些文件都在同一个目录中。
求你帮助,答案。最好的问候。
<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>
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();
}
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();
?>
P.S .: 你应该在文本编辑器的按钮上添加提示如何使用它们,我花了很多时间来弄清楚如何使用这个吸吮编辑器进行代码格式化。
提示:选择代码按下此按钮!
当你知道的时候非常容易,如果事情没有表现得那么非常烦人!
答案 0 :(得分:1)
虽然您使用的是POST请求,但实际上并没有发布任何内容。
由于您附加了查询字符串,因此可以访问它。
$cId=$_REQUEST["q"];
或
$cId=$_GET["q"];
答案 1 :(得分:0)
你有几个问题:
- 提到你需要$ _GET或$ _REQUEST
- 将你的脚本标签关在JS文件中
- 我对ob_start()不熟悉,但回声效果很好
- 如果文件都在同一个文件夹中,那么你的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;
?>