Dropdown menu does not stay selected when I return to page

Any idea on why the dropdown menu for the following script will not stay on the selected value:

if (isset($_POST['Submit1'])) { $frequency = $_POST['frequency']; $fileName = 'ConfigurationFile.txt'; $lines = file($fileName); $lines[0]="Center_frequency= ". $frequency."\n"; file_put_contents($fileName, implode($lines)); } else { $fileName = 'ConfigurationFile.txt'; $lines = file($fileName); $frequency=explode(" ",$lines[0]); $frequency=$frequency[1]; } ?> 

but if I put my number in quotation mark, meaning

  <?php if (isset($_POST['Submit1'])) { $frequency = $_POST['frequency']; $fileName = 'ConfigurationFile.txt'; $lines = file($fileName); $lines[0]="Center_frequency= ".'"'. $frequency.'"'."\n"; file_put_contents($fileName, implode($lines)); } else { $fileName = 'ConfigurationFile.txt'; $lines = file($fileName); $frequency=explode("\"",$lines[0]); $frequency=$frequency[1]; } ?> 

This will work like a charm, meaning that the selected value will remain and the drop-down menu will not go to the first value in the list. Here is the html code for the drop down menu

  <form action="test.php" name="Calculation" method="post"> Center Frequency: <select name="frequency" > <?php $attr= 'selected="selected"'; ?> <option value="4.463" <?php echo $frequency == '4.463' ? $attr : ''; ?>>4.463</option> <option value="5.2625" <?php echo $frequency == '5.2625' ? $attr : ''; ?>>5.2625 </option> <option value="9.33" <?php echo $frequency == '9.33' ? $attr : ''; ?>>9.33 </option> <option value="13.5" <?php echo $frequency == '13.5' ? $attr : ''; ?>>13.5 </option> <option value="16.15" <?php echo $frequency == '16.15' ? $attr : ''; ?>>16.15 </option> <option value="24.525" <?php echo $frequency == '24.525' ? $attr : ''; ?>>24.525</option> <option value="26.275" <?php echo $frequency == '26.275' ? $attr : ''; ?>>26.275</option> </select> <Input Type = "Submit" Name ="Submit1" Value = "Save Parameters"> </form> 
+7
html php
source share
2 answers
 $fileName = 'ConfigurationFile.txt'; $lines = file($fileName); $frequency=explode(" ",$lines[0]); $frequency=$frequency[1]; var_dump($frequency); //string(5) "13.5 " <== space 

Decision

 $fileName = 'ConfigurationFile.txt'; $lines = file($fileName); $frequency=explode(" ",$lines[0]); $frequency=trim($frequency[1]); //trim function 

http://php.net/manual/pl/function.trim.php

+3
source share

There is nothing wrong with your explosion function, this problem is that your $ frequency returns a string with an extra extra space to the right. try the following:

 if (isset($_POST['Submit1'])) { $frequency = $_POST['frequency']; $fileName = 'ConfigurationFile.txt'; $lines = file($fileName); $lines[0]="Center_frequency= ". $frequency."\n"; file_put_contents($fileName, implode($lines)); } else { $fileName = 'ConfigurationFile.txt'; $lines = file($fileName); $frequency=explode(" ",$lines[0]); $frequency=trim($frequency[1]); } 

? >

and he should work

+3
source share

All Articles