2013-10-11 121 views
0

我對腳本和Web開發不熟悉。我正在以分頁格式顯示一個CSV文件。顯示CSV文件的代碼如下所示。將值從javascript傳遞到PHP

<?php 
$names = file('demo.csv'); 
$page = $_GET['page']; 

//constructor takes three parameters 
//1. array to be paged 
//2. number of results per page (optional parameter. Default is 10) 
//3. the current page (optional parameter. Default is 1) 
$pagedResults = new Paginated($names, 20, $page); 
$handle = fopen('demo.csv', 'r'); 
    if (($data = fgetcsv($handle, 1000, ',')) !== FALSE) 
    { 
    } 

echo "<table border='3' bgcolor='#dceba9' style='float:center; margin:50'>"; 
echo '<tr><th>'.implode('</th><th>', $data).'</th></tr>'; 
//when $row is false loop terminates 
while ($row = $pagedResults->fetchPagedRow()) 
{ 
    echo "<tr><td>"; 
    //echo '<tr><th>'.implode('</th><th>', $data).'</th></tr>'; 
    $row1 = str_replace(',', "</td><td>", $row); 
    echo $row1; 
    echo "</td></tr>"; 
} 
fclose($handle); 
echo "</table>"; 

//important to set the strategy to be used before a call to fetchPagedNavigation 
$pagedResults->setLayout(new DoubleBarLayout()); 
echo $pagedResults->fetchPagedNavigation(); 
//$data1 = []; 
$total_columns = 0; 
$handle1 = fopen('demo.csv', 'r'); 
while (false !== ($row = fgetcsv($handle1, 1000, ','))) { 
    0 === $total_columns and $total_columns = count($row); 
    $i = 1; 
    while (++$i <= $total_columns) { 
     $data1[$i][] = (int) $row[$i - 1]; 
    } 
} 

$i = 0; 
while (++$i <= $total_columns) { 
    $_SESSION["min-column-$i"] = min($data1[$i]); 
    $_SESSION["max-column-$i"] = max($data1[$i]); 
} 

$_SESSION['totalcolumns'] = $total_columns; 
fclose($handle1); 
?> 

現在,根據CSV文件的列數,我需要這些許多滑塊。對於滑塊,最小值和最大值基於列的最小值和最大值。代碼如下。

<?php include 'index.php'; ?> 
<?php 
     $totalcolumns = $_SESSION["totalcolumns"]; 
?> 

<!-- Activate Simple Slider on your input --> 
    <h2>Keyword Scores</h2> 
    <?php 

$i = 1; 
while (++$i <= $_SESSION['totalcolumns']) { 
    $range = $_SESSION["min-column-$i"] . ',' . $_SESSION["max-column-$i"];?> 
     <br><?php echo "Keyword" ?> 
     <?php echo $i -1 ?> 
     <br><input type="text" data-slider="true" data-slider-range="<?php echo $range ?>" data-slider-step="1"> 
     <?php } ?> 

<form action = "update.php" method="post"><input type="submit" name="submit"value="SUBMIT"></form> 

<script> 
    $("[data-slider]") 

     .each(function() { 

      var range; 
      var input = $(this); 
      $("<span>").addClass("output") 
       .insertAfter(input); 
      range = input.data("slider-range").split(","); 
      $("<span>").addClass("range") 
       .html(range[0]) 
       .insertBefore(input); 
      $("<span>").addClass("range") 
       .html(range[1]) 
       .insertAfter(input); 
     }) 
     .bind("slider:ready slider:changed", function (event, data) { 
      $(this).nextAll(".output:first") 
       .html(data.value.toFixed(2)); 

     }); 

</script> 

現在,當我選擇在滑塊的值,並單擊「提交」按鈕,我應該得到相應的更新CSV的顯示。 (即)只應顯示滿足滑塊的行。我不確定如何做這部分,因爲我試圖包含一個PHP文件。但我無法將值傳遞給PHP文件。有人可以幫我在這一部分?

+2

中獲得結果。您是否聽說過關於Ajax的一些信息? –

+0

我不知道它。是否有可能使用Ajax發送整個值的數組?例如,如果我有5個滑塊,我可以使用ajax發送所有5個值嗎? –

+0

是的你可以:)! –

回答

1

AJAX是與服務器交換數據的技術。因此,您可以將所需的值發送至php腳本,並在您的javascript