Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/382.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP POST变量为空_Php_Javascript_Post - Fatal编程技术网

PHP POST变量为空

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

我的问题是,我试图通过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>

  • 标题
    • 链接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;
?>