2012-03-16 3 views
0

Я собрал приведенную ниже форму, которая позволяет пользователю извлекать записи базы данных с даты, которую они выбирают из выпадающего меню.Показать опцию «Все записи»

<html> 
<head> 
<script type="text/javascript"> 

function ajaxFunction(name) 
{ 
var browser = navigator.appName; 
if(browser == "Microsoft Internet Explorer") 
{ 
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); 

} 
else 
{// code for IE6, IE5 
xmlhttp=new XMLHttpRequest(); 

} 
xmlhttp.onreadystatechange=function() 
{ 
if (xmlhttp.readyState==4 && xmlhttp.status==200) 
{ 
document.getElementById("my_div").innerHTML=xmlhttp.responseText; 
} 
} 

xmlhttp.open("GET","getrecords.php?dateoftrip="+name,true); 
xmlhttp.send(); 
} 

function getquerystring() { 
var form = document.forms['frm1']; 
var word = form.word.value; 
qstr = 'w=' + escape(word); // NOTE: no '?' before querystring 
return qstr; 
} 


</script> 


<style type="text/css"> 
<!-- 
.style1 { 
    font-family: Calibri; 
    font-size: 14px; 
} 
--> 
</style> 
</head> 
<body> 

<form action="getrecords.php" method="get" name="frm1"> 

<table width="148" border="0"> 

<tr> 
<td width="152"><p class="style1">Select a date from below</p> 
    <div align="center"> 
    <?php 
include("db.php"); 

$query="select * from finds group by dateoftrip"; 
echo '<select onchange="ajaxFunction(this.value)">'; 
$result=mysql_query($query); 
while($rows=mysql_fetch_array($result)){ 

echo "<option name='name' value=".$rows['dateoftrip'].">".$rows['dateoftrip']."</option>"; 

} 
echo "</select>"; 
?> 
    </div></td> 
</tr> 
</table> 
</form> 
<div id="my_div"></div> 
</body> 
</html> 

и это скрипт php, который извлекает записи.

<?php 
include("db.php"); 
$dateoftrip= $_GET['dateoftrip']; 
$findname= $_GET['findname']; 
$finddescription= $_GET['finddescription']; 

$query="select * from finds where dateoftrip='$dateoftrip'"; 
echo "<table>"; 
$result=mysql_query($query); 
while($rows=mysql_fetch_array($result)){ 

echo "<tr>"; 
echo "<td>Find Name : </td>"; 
echo "<td>".$rows['findname']."</td>"; 
echo "</tr>"; 

echo "<tr>"; 
echo "<td>Find Description : </td>"; 
echo "<td>".$rows['finddescription']."</td>"; 
echo "</tr>"; 
} 
echo "</table>"; 
?> 

Я хотел бы расширить функциональность немного, если вообще возможно, добавив опцию «Все отчеты» в раскрывающемся меню, которое, очевидно, возвращает все записи для текущего пользователя.

Я искал это в течение нескольких дней, и я не нашел примера, где есть эта добавленная функциональность.

Я просто задавался вопросом, может ли кто-нибудь дать какие-то указания относительно того, как я могу уйти от этого, пожалуйста.

Измененная форма Код

<html> 
<head> 
<script type="text/javascript"> 

function ajaxFunction(name) 
{ 
var browser = navigator.appName; 
if(browser == "Microsoft Internet Explorer") 
{ 
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); 

} 
else 
{// code for IE6, IE5 
xmlhttp=new XMLHttpRequest(); 

} 
xmlhttp.onreadystatechange=function() 
{ 
if (xmlhttp.readyState==4 && xmlhttp.status==200) 
{ 
document.getElementById("my_div").innerHTML=xmlhttp.responseText; 
} 
} 

xmlhttp.open("GET","getrecords.php?dateoftrip="+name,true); 
xmlhttp.send(); 
} 

function getquerystring() { 
var form = document.forms['frm1']; 
var word = form.word.value; 
qstr = 'w=' + escape(word); // NOTE: no '?' before querystring 
return qstr; 
} 


</script> 


<style type="text/css"> 
<!-- 
.style1 { 
    font-family: Calibri; 
    font-size: 14px; 
} 
--> 
</style> 
</head> 
<body> 

<form action="getrecords.php" method="get" name="frm1"> 

<table width="148" border="0"> 

<tr> 
<td width="152"><p class="style1">Select a date from below</p> 
    <div align="center"> 
    <?php 
include("db.php"); 

$query="select * from finds group by dateoftrip"; 
echo '<select onchange="ajaxFunction(this.value)"><OPTION name="name" value="ALLRECORDS">'; 
$result=mysql_query($query); 
while($rows=mysql_fetch_array($result)){ 

echo "<option name='name' value=".$rows['dateoftrip'].">".$rows['dateoftrip']."</option>"; 

} 
echo "</select>"; 
?> 
    </div></td> 
</tr> 
</table> 
</form> 
<div id="my_div"></div> 
</body> 
</html> 

ответ

1

Создать вариант для 'ALL' вещь

echo '<select onchange="ajaxFunction(this.value)"><OPTION name="name" value="ALLRECORDS">All Records</option>'; 

Handle запрос для 'ALL' вещь

if ($dateoftrip=="ALLRECORDS") { 
    $query="select * from finds"; 
} else { 
    $query="select * from finds where dateoftrip='$dateoftrip'"; 
} 

На боковой ноте вы должны посмотреть примерно SQL Injection, не используя селектор '*', но вводя явное имя атрибутов, которые вы ищете

+0

Приветствую большое спасибо за ответ на мое сообщение. Я пробовал свой код для меню «drop dopwn», и, к сожалению, я не могу получить параметр «Все записи». Я исправил свой оригинальный пост с измененным кодом. Не могли бы вы, пожалуйста, взглянуть на него и сообщить мне, где я ошибся? С уважением – IRHM

+0

Вам нужно закрыть опцию «Все записи» ... строка должна читать: 'echo '