2014-11-24 94 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