2016-03-31 7 views
2

Ich habe ein Optionsmenü (selFilter), das eine MYSQL-Abfrage filtert. Die Optionsmenüoption wird in einem Link zum Filtern einer zweiten PHP-Seite verwendet. export.php recordID =Aufruf von URL mit leeren Datensätzen

<select name="selFilter" id="selFilter" onchange="formFilter.submit()"> 
    <option value="%">all levels</option> 
    <?php 
do { 
?> 
    <option value="<?php echo $row_RecordsetLevel['Level']?>"<?php if 
($varFilter_Recordset3 == $row_RecordsetLevel['Level']) {echo 'selected';} 
?>>level: <?php echo $row_RecordsetLevel['Level']?></option> 
    <?php 
} while ($row_RecordsetLevel = mysql_fetch_assoc($RecordsetLevel)); 
$rows = mysql_num_rows($RecordsetLevel); 
if($rows > 0) { 
    mysql_data_seek($RecordsetLevel, 0); 
    $row_RecordsetLevel = mysql_fetch_assoc($RecordsetLevel); 
} 
?> 
    </select> 

Die zweite PHP-Seite verwendet eine Abfrage in .csv mit dem folgenden zu exportieren:?

$colname = "%"; 
if (isset($_GET['recordID'])) { 
$colname = $_GET['recordID']; 
} 


$query = sprintf('SELECT Name, ID 
FROM schedule WHERE Level LIKE %s ORDER BY Name', 
GetSQLValueString("%".$colname."%", "text")); 

$result = mysql_query($query, $conn) or die(mysql_error($conn)); 
// 
// send response headers to the browser 
// following headers instruct the browser to treat the data as a csv file 
called export.csv 

// 
header('Content-Type: text/csv'); 
header('Content-Disposition: attachment;filename=export.csv'); 

Alles funktioniert gut, wenn eine Option (selFilter) in dem gewählt wird index.php Datei und ich klicke auf export.php. Das Problem ist, wenn ich im Optionsmenü nichts auswähle und auf den Link export.php klicke, dann lautet die URL-Zeichenfolge export.php? RecordID = wobei recordID leer ist. Dieses Leerzeichen führt dazu, dass nichts exportiert wird, keine Datensätze. Wenn ich eine Optionsmenüebene wähle und dann auf alle Ebenen klicke, lautet die URL export.php? RecordID =% und wird korrekt exportiert. Was muss ich beheben, damit ich von beiden Anrufen exportieren kann?

Ich habe versucht, die folgenden aber Export URL ist immer noch leer:

export.php?recordID=<?php $filter=$_POST['selFilter']; if (!empty($filter)) { echo "%"; } ?> 
+0

'while (...);' <<< Ende der Anweisung und gilt als "gültige" Syntax. –

+0

Ich bin mir nicht sicher, ob ich deine Empfehlung verstehe. Kannst du bitte etwas ausarbeiten? – user3258571

+0

bedeutet, dass das Semikolon Ihre Aussage "beendet"; entfernen Sie es. –

Antwort

0

ich eine Lösung gefunden. Geänderte Export Link zu:

export.php?recordID=<?php 
$filter=isset($_POST['selFilter']) ? $_POST['selFilter'] : '%'; 
echo "/export_student.php?recordID=$filter"; 
?> 

Gebrauchte Lösung von Stackoverflow: PHP: "Notice: Undefined variable", "Notice: Undefined index", and "Notice: Undefined offset"

ich nur

$filter=isset($_POST['selFilter']) ? $_POST['selFilter'] : ''; 

mit

$filter=isset($_POST['selFilter']) ? $_POST['selFilter'] : '%'; 

ersetzt seit meiner Anfrage einen undefinierten Index Auslösung basiert auf In meinem Optionsmenü wurde kein Wert festgelegt.

Verwandte Themen