2014-04-17 50 views
0

您好我目前使用javascript來調用在輔助頁面上運行sql查詢的小函數我有大約4到5個這些小腳本,我只是想知道如何把它們全部並且能夠從這一頁中調用我需要的那個,而不是有5個不同的腳本,它們有3到5行代碼。我的代碼和過程如下所示。如何將3行腳本合併成一個頁面

首先我正在使用的JavaScript。

$("select#principle").attr("disabled","disabled"); 
      $("select#type").change(function(){ 
       var id = $("select#type option:selected").attr('value'); 
       $("select#principle").attr("disabled","disabled"); 
       $("select#principle").html("<option>wait...</option>"); 
       $.post("select_principle.php", {id:id}, function(data){ 
        $("#Options").addClass("active"); 
        $("select#principle").removeAttr("disabled"); 
        $("select#principle").html(data); 
       }); 
      }); 

這是一個JavaScript函數,我使用它檢查下拉框是否被選中,然後刪除下一個的disable屬性。但正如你所看到的那樣,這裏有一個$.Post這叫做PHP頁面。

被調用的頁面

<?php 
    include "select.class.php"; 
    echo $opt->ShowPrinciple(); 
?> 

這是PHP代碼,轉到select.class.php頁面並運行一個SQL查詢。這也是我有多個代碼,我希望這是與其他人以同樣的方式調用其他函數在一個腳本中,但他們必須只在被調用時運行。

正在運行SQL查詢低於

// this displays the principle when called 

public function ShowAllPrinciple() 
{ 
    $sql = "SELECT principle.principle_id,principle.description,principle.section_id,COUNT(media.principle_id) as media_count 
      FROM principle 
      LEFT OUTER JOIN media ON principle.principle_id = media.principle_id 
      AND principle.section_id = media.section_id 
      WHERE principle.section_id={$_POST['id']} 
      GROUP BY principle.principle_id,principle.description"; 
    $res = mysql_query($sql,$this->conn); 
    $principle = '<option value="%">choose...</option>'; 
    while($row = mysql_fetch_array($res)) 
    { 
     $principle .= '<option value="' . $row['principle_id'] . '">' . $row['description']. '...('.$row['media_count'].') </option>'; 
    } 
    return $principle; 
} 

這只是一個簡單的SQL查詢,連接到數據庫,然後獲取數據並顯示到下拉框中。

關於如何將這些小腳本放入一個頁面並使用JavaScript調用特定函數的任何想法,只有小腳本需要位於PHP頁面內,並且SQL查詢位於PHP頁面內,因此無法更改。

<?php 
     include "select.class.php"; 
     echo $opt->ShowPrinciple(); 
    ?> 

任何幫助,將不勝感激

+0

您可以使用開關或if語句。你可以根據一個動作或類似的東西做一個開關。 – Perry

+0

你能告訴我一個例子或文檔嗎? @Perry – user3387522

+0

檢查我的答案我補充。 – Perry

回答

1

我認爲,根據你的問題,你需要這樣的事:

<?php 
include "select.class.php"; 
switch ($_POST['action']) { 
    case "firstAction": 
     echo $opt->ShowPrinciple(); 
     break; 
    case "secondAction": 
     echo $opt->ShowSomethingElse(); 
     break; 
    case default: 
     echo 'something went wrong'; 
     break; 
} 
?> 

哪裏$action是你必須張貼或添加URL中的作用。的JavaScript

實施例: 的Javascript爲第一個選擇框中

$("select#type").change(function() { 
    var id = $("select#type option:selected").attr('value'); 
    $("select#principle").attr("disabled", "disabled"); 
    $("select#principle").html("<option>wait...</option>"); 
    $.post("select_principle.php", {action: 'firstAction', id: id}, function(data) { 
     $("#Options").addClass("active"); 
     $("select#principle").removeAttr("disabled"); 
     $("select#principle").html(data); 
    }); 
}); 

的Javascript爲第二選擇框

$("select#type").change(function() { 
    var id = $("select#principle option:selected").attr('value'); 
    $.post("select_principle.php", {action: 'sencondAction', id: id}, function(data) { 
     $("select#principle").html(data); 
    }); 
}); 

通知我沒有測試此代碼。一旦你做了一個更改,腳本將發佈操作以及id到php文件。在交換機中是基於php文件中的$_POST['action']

+0

好的你的答案我將如何實現這個JavaScript,我有? – user3387522

+0

你能告訴我如何將JavaScript中的變量傳遞給這個switch語句嗎? – user3387522

相關問題