2013-03-16 116 views
2
<body> 
<form method="post" action="eex4.php"> 
    <label for="text_2">Select the Scheme:&nbsp;&nbsp;&nbsp;</label> 
    <select name="users" id="users"> 
    <option value="">Select:</option> 
    <option value="1">Sem1</option> 
    <option value="2">Sem2</option> 
    <option value="3">Sem3</option> 
    <option value="4">Sem4</option> 
    <option value="5">Sem5</option> 
    <option value="6">Sem6</option> 
    </select> 
    &nbsp;&nbsp;&nbsp; 
    <input type="submit" value="Submit" name="btn" onClick="ResultPage()"/> 
</form> 
</body> 

上述代碼輸出具有提交按鈕的選擇框。當我點擊提交按鈕時,它會調用腳本。將selectbox選項值傳遞給php

<script> 
function ResultPage() 
{ 
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("txtHint").innerHTML=xmlhttp.responseText; 
    } 
    } 
var select = document.getElementById('users'); 
var sem = select.options[select.selectedIndex].value; 
var uurl = "eex4.php?q=" + sem; 

xmlhttp.open("GET",uurl,true); 
xmlhttp.send(); 
} 
</script> 

我需要傳遞選擇框的值我選擇併發送到下面的php文件。

eex4.php

<?php 
$schm = $_GET['sem']; 
$txt1 = "Semester"; 
echo $txt1 ." ". $schm; 
?> 

我預期的結果是:

「學期[選項的值有選擇]」,但它只是顯示 「學期」

任何一個可以找到錯誤..

+1

如果我理解你清楚再改變這種變種uurl傳遞值=「 eex4.php?q =「+ sem;爲VAR uurl = 「eex4.php SEM =?」 + SEM;它會工作.... – alwaysLearn 2013-03-16 12:29:31

+0

我使用alertbox進行了JavaScript檢查。它返回正確的值,我有疑問在只傳遞的URL ..它是正確的? – Hari 2013-03-16 12:53:49

回答

2

使用

$schm = $_GET['q']; 

,因爲你在這裏

var uurl = "eex4.php?q=" + sem; 

問題是與您的形式傳遞q當您單擊提交按鈕,它張貼的數據eex4.php,只是顯示Semester

變化

<input type="submit" 

<input type="button" 

所以,當你點擊這個按鈕的內容將在頁面加載而無需刷新頁面。

+0

雅我改變了,但php回聲陳述不打印選擇框的值..舊回答只返回 – Hari 2013-03-16 12:36:16

+0

@ user1709672你是什麼意思的「舊回答」? – IMSoP 2013-03-16 12:40:34

+0

它只是印刷價值$ txt(即)「學期」 – Hari 2013-03-16 12:43:43

0

阿賈克斯部分已採取從W3Schools的。你只需要更換$schm = $_GET['sem']; to $schm = $_GET['q'];

+0

我改變了。但回聲聲明不打印類似「Semester1」的O/P – Hari 2013-03-16 12:41:10

0

變化

var uurl = "eex4.php?q=" + sem; 

var uurl = "eex4.php?sem=" + sem; 

,因爲你是在eex4.php獲得 'SEM',但通過 'Q' 它

+0

我使用alertbox檢查了javascript。它返回正確的值,我有疑問在只傳遞的URL ..它是正確的? – Hari 2013-03-16 12:54:53

+0

@ user1709672您正在使用$ _GET ['sem']獲取eeex4.php中的值,但您將q作爲參數傳遞給它..因此您必須將其更改爲'sem' – alwaysLearn 2013-03-18 05:07:42

0

變化

$schm = $_GET['sem']; 

$schm = $_GET['q']; 
+0

我改變了。但回聲聲明不打印像「Semester1」O/P – Hari 2013-03-16 12:39:40

0

您通過q

$schm = $_GET['q']; 
+0

我改變了一切。但'q'沒有通過價值。 – Hari 2013-03-16 12:48:26

0
<body> 
    <div id="txtHint"></div> 
    <form method="post" action="eex4.php"> 
    <label for="text_2">Select the Scheme:&nbsp;&nbsp;&nbsp;</label> 
    <select name="users" id="users"> 
    <option value="">Select:</option> 
    <option value="1">Sem1</option> 
    <option value="2">Sem2</option> 
    <option value="3">Sem3</option> 
    <option value="4">Sem4</option> 
    <option value="5">Sem5</option> 
    <option value="6">Sem6</option> 
    </select> 
    &nbsp;&nbsp;&nbsp; 
    <input type="submit" value="Submit" name="btn" onClick="return ResultPage()"/> 
</form> 
</body> 



<script> 
function ResultPage() 
{ 
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("txtHint").innerHTML=xmlhttp.responseText; 
    } 
    } 
var select = document.getElementById('users'); 
var sem = select.options[select.selectedIndex].value; 
var uurl = "eex4.php?q=" + sem; 

xmlhttp.open("GET",uurl,true); 
xmlhttp.send(); 
return false; 
} 
</script> 

eex4.php

<?php 
$schm = $_GET['sem']; 
$txt1 = "Semester"; 
echo $txt1 ." ". $schm; 
?>