2014-11-24 96 views
0

我在我的网页上有两个下拉列表,我选择经理和项目。从javascript发布数据到php

如果我选择任何经理,那么我想获得分配给特定经理的项目。

我想我不能在没有javascript和ajax的帮助下做到这一点。

所以我已经将所选择的管理器值传递给javascript文件,并且再次使用ajax发布了该值。但它似乎代码不工作。

这是我的php代码。

<form method="post" action="<?php $_PHP_SELF ?>"> 
    Select Manager <select id='managed' name="managed" onchange="getManager()"> 
         <option value="">---select---</option> 
<?php 
    $conn=mysqli_connect('localhost','root','root','projmanagement'); 
    $result=mysqli_query($conn,'SELECT manager_id,manager_name FROM manager'); 
    while($row=mysqli_fetch_assoc($result)) { 
     echo "<option value='$row[manager_id]'>$row[manager_name]</option>"; 
    } 
?> 
        </select> 
      Select Project <select name="projectsd"> 
           <option value="">---select---</option> 
<?php   
    $temp = $_POST['managed']; 
    var_dump($temp); 
    die(); 
    $result1=mysqli_query($conn,'SELECT project_id,project_name FROM project inner join manager on project.m_id=$temp'); 
    while($row1=mysqli_fetch_assoc($result1)) { 
     echo "<option value='$row1[project_id]'>$row1[project_name]</option>"; 
    } 
?> 

这是我的javascript代码。

function getManager() { 
    var myvar=document.getElementById('managed').value; 

    var xmlhttp; 
    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("managed").innerHTML = xhr.responseText; 
     } 
    } 
    xmlhttp.open("POST","TaskMaster.php",true); 
    xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); 
    xhr.send("managed=" + myvar); 
} 

我是一个初学者到PHP和JavaScript。

请给我一个想法来解决我的问题。

+0

那么对于初学者,你只需要在屏幕上1个选择框,一旦你选择了一个经理,你追加一些html代码与您从ajax调用创建的选择 – Naruto 2014-11-24 12:57:01

+0

@Naruto谢谢。 – user3663600 2014-11-24 13:14:08

回答

0

试试这个:

<form method="post" action="<?php $_PHP_SELF ?>"> 
    Select Manager <select id='managed' name="managed" onchange="getManager()"> 

     <option value="">---select---</option> 
<?php 
     $conn=mysqli_connect('localhost','root','root','projmanagement'); 
     $result=mysqli_query($conn,'SELECT manager_id,manager_name FROM manager'); 
     while($row=mysqli_fetch_assoc($result)) { 
      echo "<option value='$row[manager_id]'>$row[manager_name]</option>"; 
     } 
     ?> </select> 
     Select Project <div id="project_container"><select name="projectsd"></div> 

JS:

function getManager() 
{ 
var myvar=document.getElementById('managed').value; 

    var xmlhttp; 
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("project_container").innerHTML = xhr.responseText; 
} 
} 
xmlhttp.open("POST","TaskMaster.php",true); 
xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); 
xhr.send("managed=" + myvar); 
    } 
+0

xhr.send(“managed =”+ myvar);在php文件中,我写过这样的&temp = $ _POST ['managed'];的var_dump($温度);模具(); 。但是我无法从JavaScript文件中获取值。 – user3663600 2014-11-24 13:21:44

+0

为什么使用&temp = $ _POST ['managed'];而是使用$ temp = $ _POST ['managed']; – Pankaj 2014-11-25 05:12:30

+0

而且你也可以print_r($ _ POST);为更多调试... – Pankaj 2014-11-25 05:13:31