[英]how to put every<select><option> combobox into a variable in PHP
我的PHP腳本的輸出有點問題。
此頁面的目的是選擇票證狀態選項之一,例如:
用戶選擇狀態后,代碼必須顯示具有所選狀態的正確票證。
因此,我試圖做的是在每個選項之后放置一個數字變量,然后嘗試使其變為選中狀態,從而刷新頁面,並在頁面刷新時發送該選項的變量-除非它不起作用,大聲笑。
我一直在集思廣益,用不同的想法來檢查它從組合框中選擇狀態所獲得的變量,但是我還沒有弄清楚這是多么令人沮喪。
要點:
下面是當前代碼:
<?PHP
session_start();
include('connection.php');
if ($_SESSION['staff'] >='6')
{
echo "<select name='type' id='type'>
<option value='Open Tickets'>Open Tickets</option>" . $int= '1' . "
<option value='New Tickets'>New Tickets</option>" . $int= '2' . "
<option value='Under Review'>Under Review</option>" . $int = '3' . "
<option value='Closed Tickets'>Closed Tickets</option>" . $int = '4' . "
</select><BR>";
echo "Current listed support tickets: <BR><BR>";
if ($int = '1')
{
$result1 = mysql_query("SELECT * FROM support WHERE status = 'New Ticket' OR 'Under Review'");
while ($row1 = mysql_fetch_array($result1))
{
$ticket1 = $row1['TicketID'];
$user1 = $row1['name'];
echo "Ticket ID: " . $row1['TicketID'] . "<BR>" . $row1['type'] . "<BR>Subject: " . $row1['subject'] . "<BR>Ticket Status: " . $row1['status'] . "<BR>";
echo "<form action='detail_ticket.php?t=$ticket1' method='post' name='detail_t' id='detail_t'><input type='submit' name='detail_b' id='detail_b' value='View Ticket!'></form>";
echo "<form action='reply_ticket.php?r=$user1' method='post' name='r_ticket' id='r_ticket'><input type='submit' name='reply_b' id='reply_b' value='Reply on Ticket!'></form>";
}
}elseif ($int = '2')
{
$result2 = mysql_query("SELECT * FROM support WHERE status = 'New Ticket'");
while ($row2 = mysql_fetch_array($result2))
{
$ticket2 = $row2['TicketID'];
$user2 = $row2['name'];
echo "Ticket ID: " . $row2['TicketID'] . "<BR>" . $row2['type'] . "<BR>Subject: " . $row2['subject'] . "<BR>Ticket Status: " . $row2['status'] . "<BR>";
echo "<form action='detail_ticket.php?t=$ticket2' method='post' name='detail_t' id='detail_t'><input type='submit' name='detail_b' id='detail_b' value='View Ticket!'></form>";
echo "<form action='reply_ticket.php?r=$user2' method='post' name='r_ticket' id='r_ticket'><input type='submit' name='reply_b' id='reply_b' value='Reply on Ticket!'></form>";
}
}elseif ($int = '3')
{
$result3 = mysql_query("SELECT * FROM support WHERE status = 'New Ticket'");
while ($row3 = mysql_fetch_array($result3))
{
$ticket3 = $row3['TicketID'];
$user3 = $row3['name'];
echo "Ticket ID: " . $row3['TicketID'] . "<BR>" . $row3['type'] . "<BR>Subject: " . $row3['subject'] . "<BR>Ticket Status: " . $row3['status'] . "<BR>";
echo "<form action='detail_ticket.php?t=$ticket3' method='post' name='detail_t' id='detail_t'><input type='submit' name='detail_b' id='detail_b' value='View Ticket!'></form>";
echo "<form action='reply_ticket.php?r=$user3' method='post' name='r_ticket' id='r_ticket'><input type='submit' name='reply_b' id='reply_b' value='Reply on Ticket!'></form>";
}
}elseif ($int = '4')
{
$result4 = mysql_query("SELECT * FROM support WHERE status = 'Closed'");
while ($row4 = mysql_fetch_array($result4))
{
$ticket4 = $row4['TicketID'];
$user4 = $row4['name'];
echo "Ticket ID: " . $row4['TicketID'] . "<BR>" . $row4['type'] . "<BR>Subject: " . $row4['subject'] . "<BR>Ticket Status: " . $row4['status'] . "<BR>";
echo "<form action='detail_ticket.php?t=$ticket4' method='post' name='detail_t' id='detail_t'><input type='submit' name='detail_b' id='detail_b' value='View Ticket!'></form>";
echo "<form action='reply_ticket.php?r=$user4' method='post' name='r_ticket' id='r_ticket'><input type='submit' name='reply_b' id='reply_b' value='Reply on Ticket!'></form>";
}
}
echo "Click <A href='overview_page.php'>HERE</A> to return to the overview page.<BR>";
echo "Click <A href='uitlogen_user.php'>HERE</A> to logout!<BR>";
}else
{
echo "You need to be an GM or Admin to view this page!<BR>";
echo "Click <A href='uitlogen_user.php'>HERE</A> to login!";
}
?>
兩個想法:
a)您可以通過實現一些javascript來實現,這些javascript會在選擇更改后切換每個票證的顯示狀態。
if ($_SESSION['staff'] >='6')
{
echo "<select name='type' id='type' onchange='typeChanged()' onpropertychange='typeChanged()'>
<option value='tab1'>Open Tickets</option>
<option value='tab2'>New Tickets</option>
<option value='tab3'>Under Review</option>
<option value='tab4'>Closed Tickets</option>
</select><BR>";
echo "Current listed support tickets: <BR><BR>";
echo "<div id="tab1" name="tabs">";
$result1 = mysql_query("SELECT * FROM support WHERE status = 'New Ticket' OR 'Under Review'");
while ($row1 = mysql_fetch_array($result1))
{
$ticket1 = $row1['TicketID'];
$user1 = $row1['name'];
echo "Ticket ID: " . $row1['TicketID'] . "<BR>" . $row1['type'] . "<BR>Subject: " . $row1['subject'] . "<BR>Ticket Status: " . $row1['status'] . "<BR>";
echo "<form action='detail_ticket.php?t=$ticket1' method='post' name='detail_t' id='detail_t'><input type='submit' name='detail_b' id='detail_b' value='View Ticket!'></form>";
echo "<form action='reply_ticket.php?r=$user1' method='post' name='r_ticket' id='r_ticket'><input type='submit' name='reply_b' id='reply_b' value='Reply on Ticket!'></form>";
}
echo "</div>";
echo "<div id="tab2" name="tabs">";
$result2 = mysql_query("SELECT * FROM support WHERE status = 'New Ticket'");
while ($row2 = mysql_fetch_array($result2))
{
$ticket2 = $row2['TicketID'];
$user2 = $row2['name'];
echo "Ticket ID: " . $row2['TicketID'] . "<BR>" . $row2['type'] . "<BR>Subject: " . $row2['subject'] . "<BR>Ticket Status: " . $row2['status'] . "<BR>";
echo "<form action='detail_ticket.php?t=$ticket2' method='post' name='detail_t' id='detail_t'><input type='submit' name='detail_b' id='detail_b' value='View Ticket!'></form>";
echo "<form action='reply_ticket.php?r=$user2' method='post' name='r_ticket' id='r_ticket'><input type='submit' name='reply_b' id='reply_b' value='Reply on Ticket!'></form>";
}
echo "</div>";
echo "<div id="tab3" name="tabs">";
$result3 = mysql_query("SELECT * FROM support WHERE status = 'New Ticket'");
while ($row3 = mysql_fetch_array($result3))
{
$ticket3 = $row3['TicketID'];
$user3 = $row3['name'];
echo "Ticket ID: " . $row3['TicketID'] . "<BR>" . $row3['type'] . "<BR>Subject: " . $row3['subject'] . "<BR>Ticket Status: " . $row3['status'] . "<BR>";
echo "<form action='detail_ticket.php?t=$ticket3' method='post' name='detail_t' id='detail_t'><input type='submit' name='detail_b' id='detail_b' value='View Ticket!'></form>";
echo "<form action='reply_ticket.php?r=$user3' method='post' name='r_ticket' id='r_ticket'><input type='submit' name='reply_b' id='reply_b' value='Reply on Ticket!'></form>";
}
echo "</div>";
echo "<div id="tab4" name="tabs">";
$result4 = mysql_query("SELECT * FROM support WHERE status = 'Closed'");
while ($row4 = mysql_fetch_array($result4))
{
$ticket4 = $row4['TicketID'];
$user4 = $row4['name'];
echo "Ticket ID: " . $row4['TicketID'] . "<BR>" . $row4['type'] . "<BR>Subject: " . $row4['subject'] . "<BR>Ticket Status: " . $row4['status'] . "<BR>";
echo "<form action='detail_ticket.php?t=$ticket4' method='post' name='detail_t' id='detail_t'><input type='submit' name='detail_b' id='detail_b' value='View Ticket!'></form>";
echo "<form action='reply_ticket.php?r=$user4' method='post' name='r_ticket' id='r_ticket'><input type='submit' name='reply_b' id='reply_b' value='Reply on Ticket!'></form>";
}
echo "</div>";
echo "Click <A href='overview_page.php'>HERE</A> to return to the overview page.<BR>";
echo "Click <A href='uitlogen_user.php'>HERE</A> to logout!<BR>";
}else
{
echo "You need to be an GM or Admin to view this page!<BR>";
echo "Click <A href='uitlogen_user.php'>HERE</A> to login!";
}
?>
<script type="text/javascript">
function typeChanged()
{
var chosen = document.getElementById('type').value;
var tabs = document.getElementsByName('tabs');
for (var i in tabs)
{
tabs[i].style.display = 'none';
}
document.getElementById(chosen).style.display = 'block';
}
</script>
b)使用一些url參數重定向到該頁面,指示選擇了哪個票證,並顯示相應的票證。
<?PHP
session_start();
include('connection.php');
if ($_SESSION['staff'] >='6')
{
$chosen = isset($_GET['chosen']) ? $_GET['chosen'] : 'tab1';
echo "<select name='type' id='type' onchange='typeChanged()' onpropertychange='typeChanged()'>
<option value='tab1'>Open Tickets</option>
<option value='tab2'>New Tickets</option>
<option value='tab3'>Under Review</option>
<option value='tab4'>Closed Tickets</option>
</select><BR>";
echo "Current listed support tickets: <BR><BR>";
if ($chosen == 'tab1')
{
$result1 = mysql_query("SELECT * FROM support WHERE status = 'New Ticket' OR 'Under Review'");
while ($row1 = mysql_fetch_array($result1))
{
$ticket1 = $row1['TicketID'];
$user1 = $row1['name'];
echo "Ticket ID: " . $row1['TicketID'] . "<BR>" . $row1['type'] . "<BR>Subject: " . $row1['subject'] . "<BR>Ticket Status: " . $row1['status'] . "<BR>";
echo "<form action='detail_ticket.php?t=$ticket1' method='post' name='detail_t' id='detail_t'><input type='submit' name='detail_b' id='detail_b' value='View Ticket!'></form>";
echo "<form action='reply_ticket.php?r=$user1' method='post' name='r_ticket' id='r_ticket'><input type='submit' name='reply_b' id='reply_b' value='Reply on Ticket!'></form>";
}
}
if ($chosen == 'tab2')
{
$result2 = mysql_query("SELECT * FROM support WHERE status = 'New Ticket'");
while ($row2 = mysql_fetch_array($result2))
{
$ticket2 = $row2['TicketID'];
$user2 = $row2['name'];
echo "Ticket ID: " . $row2['TicketID'] . "<BR>" . $row2['type'] . "<BR>Subject: " . $row2['subject'] . "<BR>Ticket Status: " . $row2['status'] . "<BR>";
echo "<form action='detail_ticket.php?t=$ticket2' method='post' name='detail_t' id='detail_t'><input type='submit' name='detail_b' id='detail_b' value='View Ticket!'></form>";
echo "<form action='reply_ticket.php?r=$user2' method='post' name='r_ticket' id='r_ticket'><input type='submit' name='reply_b' id='reply_b' value='Reply on Ticket!'></form>";
}
}
if ($chosen == 'tab3')
{
$result3 = mysql_query("SELECT * FROM support WHERE status = 'New Ticket'");
while ($row3 = mysql_fetch_array($result3))
{
$ticket3 = $row3['TicketID'];
$user3 = $row3['name'];
echo "Ticket ID: " . $row3['TicketID'] . "<BR>" . $row3['type'] . "<BR>Subject: " . $row3['subject'] . "<BR>Ticket Status: " . $row3['status'] . "<BR>";
echo "<form action='detail_ticket.php?t=$ticket3' method='post' name='detail_t' id='detail_t'><input type='submit' name='detail_b' id='detail_b' value='View Ticket!'></form>";
echo "<form action='reply_ticket.php?r=$user3' method='post' name='r_ticket' id='r_ticket'><input type='submit' name='reply_b' id='reply_b' value='Reply on Ticket!'></form>";
}
}
if ($chosen == 'tab4')
{
$result4 = mysql_query("SELECT * FROM support WHERE status = 'Closed'");
while ($row4 = mysql_fetch_array($result4))
{
$ticket4 = $row4['TicketID'];
$user4 = $row4['name'];
echo "Ticket ID: " . $row4['TicketID'] . "<BR>" . $row4['type'] . "<BR>Subject: " . $row4['subject'] . "<BR>Ticket Status: " . $row4['status'] . "<BR>";
echo "<form action='detail_ticket.php?t=$ticket4' method='post' name='detail_t' id='detail_t'><input type='submit' name='detail_b' id='detail_b' value='View Ticket!'></form>";
echo "<form action='reply_ticket.php?r=$user4' method='post' name='r_ticket' id='r_ticket'><input type='submit' name='reply_b' id='reply_b' value='Reply on Ticket!'></form>";
}
}
echo "Click <A href='overview_page.php'>HERE</A> to return to the overview page.<BR>";
echo "Click <A href='uitlogen_user.php'>HERE</A> to logout!<BR>";
}else
{
echo "You need to be an GM or Admin to view this page!<BR>";
echo "Click <A href='uitlogen_user.php'>HERE</A> to login!";
}
?>
<script type="text/javascript">
function typeChanged()
{
var chosen = document.getElementById('type').value;
window.location.href = 'FILENAME.php?chosen=' + chosen;
}
</script>
這是AJAX如何為您工作的一個未測試(我沒有您的數據庫)示例。
如果您已經知道這一點,請原諒我,但是AJAX沒什么花哨的-它是一種簡單的方法,允許您從javascript調用另一個PHP文件。
AJAX的工作原理是擁有另一個PHP文件,該文件將完成下一部分工作,並將結果返回給javascript。 流程如下:
在File1中,javascript / jQuery抓住用戶選擇的選項,並“調用”(AJAX)第二個PHP文件,同時傳遞用戶的選擇。 實現這一目標的代碼在此位下:
$('#type').change( function() { //grab the new value, send to File2 via AJAX });
File2(在此示例中命名為“ another_php_file.php”)(a)接收從File1發送的POSTed值,(b)執行數據庫查找,(c)構建新的HTML,以及(d)回顯所構造的代碼(在我稱為$ x的變量中)返回File1
現在,這非常重要:File1接收AJAX例程success:
函數中的新代碼success:
函數。 在此成功功能中,它可以使用jQuery更新File1中的div。 如果您希望用戶按下可用於執行其他AJAX查找的其他按鈕,則下一個AJAX查找也必須位於此成功函數之內。
無論如何,這應該可以回答您的直接問題:
文件1
<?php
session_start();
include('connection.php');
?>
<html>
<head>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
<script src="//ajax.googleapis.com/ajax/libs/jqueryui/1.10.3/jquery-ui.min.js"></script>
<link rel="stylesheet" href="http://code.jquery.com/ui/1.9.1/themes/base/jquery-ui.css" />
<script type="text/javascript">
$(document).ready(function() {
$('#type').change( function() {
var chosen = $(this).val();
alert('You chose: ' + chosen);
$.ajax({
type: "POST",
url: "another_php_file.php",
data: 'theOption=' + chosen,
success: function(whatigot) {
//alert('Server-side response: ' + whatigot);
$('#report').html(whatigot);
$('#theButton').click(function() {
alert('You clicked the button');
});
} //END success fn
}); //END $.ajax
}); //END dropdown change event
}); //END $(document).ready()
</script>
</head>
<body>
<?php
if ($_SESSION['staff'] >='6')
{
//Note: the value text string MUST MATCH the value stored in the database, because it is this exact string you will search for in the 2nd php (AJAX) file.
echo "<select name='type' id='type'>
<option value='Open Ticket'>Open Tickets</option>
<option value='New Ticket'>New Tickets</option>
<option value='Under Review'>Under Review</option>
<option value='Closed'>Closed Tickets</option>
</select><br><br>
<div id='report'></div>";
}else
{
echo "You need to be an GM or Admin to view this page!<BR>";
echo "Click <A href='uitlogen_user.php'>HERE</A> to login!";
}
?>
文件2-在此示例中必須稱為“ another_php_file.php”。 如果要更改名稱,還必須在上面的AJAX代碼段中更改文件的名稱:
<?php
$chosen = $_POST['theOption'];
//die('You clicked: ' . $chosen);
if ($chosen == 'New Ticket') {
$result = mysql_query("SELECT * FROM support WHERE status = '$chosen' OR 'Under Review'");
while ($row1 = mysql_fetch_array($result1))
{
$ticket1 = $row1['TicketID'];
$user1 = $row1['name'];
$x = "Ticket ID: " . $row1['TicketID'] . "<BR>" . $row1['type'] . "<BR>Subject: " . $row1['subject'] . "<BR>Ticket Status: " . $row1['status'] . "<BR>";
$x .= "<form action='detail_ticket.php?t=$ticket1' method='post' name='detail_t' id='detail_t'><input type='submit' name='detail_b' id='detail_b' value='View Ticket!'></form>";
$x .= "<form action='reply_ticket.php?r=$user1' method='post' name='r_ticket' id='r_ticket'><input type='submit' name='reply_b' id='reply_b' value='Reply on Ticket!'></form>";
}
}else{
$result = mysql_query("SELECT * FROM support WHERE status = '$chosen'");
while ($row1 = mysql_fetch_array($result1))
{
$ticket1 = $row1['TicketID'];
$user1 = $row1['name'];
$x = "Ticket ID: " . $row1['TicketID'] . "<BR>" . $row1['type'] . "<BR>Subject: " . $row1['subject'] . "<BR>Ticket Status: " . $row1['status'] . "<BR>";
$x .= "<form action='detail_ticket.php?t=$ticket1' method='post' name='detail_t' id='detail_t'><input type='submit' name='detail_b' id='detail_b' value='View Ticket!'></form>";
$x .= "<form action='reply_ticket.php?r=$user1' method='post' name='r_ticket' id='r_ticket'><input type='submit' name='reply_b' id='reply_b' value='Reply on Ticket!'></form>";
}
}
$x .= "Click <A href='overview_page.php'>HERE</A> to return to the overview page.<br>";
$x .= "Click <A href='uitlogen_user.php'>HERE</A> to logout!<br><br>";
$x .= "<input type='button' id='theButton' value='Click Me Example'>";
echo $x;
乍一看,這看起來似乎很復雜,所以這里是AJAX的另一個示例 ,它大大簡化了。 請復制/粘貼到您自己的服務器上的文件中,並查看其工作方式。 這真的非常簡單。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.