0

バックグラウンド

関数の「どの部分」を実行するかを指定せずに完全に実行される JSON 関数があります。もともと、詳細な行情報を「表示」するために実行する 1 つの JSON 関数と、詳細な行情報を「編集」するための 1 つの JSON 関数がありました。これらの各機能は個別に完璧に動作します。ただし、両方の機能を 1 つのスクリプトに結合する方法について同僚のアドバイスを受けた後、失敗しているようで、その理由がわかりません... SO の専門家が手を貸して、その理由を特定できることを願っています失敗。すべての変数が AJAX を正常に通過したことが確認されています。

働く

 $id = (int)$_POST['id']; 
 $query = "SELECT * FROM table WHERE id=$id LIMIT 1"; //expecting one row  
    try {
        $result = $customer->runQuery($query);
        $message = array( 
         'id' => $id,
         'name' => $result[0]['agency_name'], 
         'account' => $result[0]['account_number'], 
         'phone' => $result[0]['phone'] 
         );
    } catch (Exception $e) {
        echo "Error: " . $e->getMessage();
    }} 
        header('Content-Type: application/json');
        print json_encode($message); 

動作しない

 $id = (int)$_POST['id']; 
 $action = $_POST['action']; //either "get" or "set"
 $action(); //On loading this variable, the correct function will be run and executed

 function get() { 
 $query = "SELECT * FROM table WHERE id=$id LIMIT 1"; //expecting one row  
    try {
        $result = $customer->runQuery($query);
        $message = array( 
         'id' => $id,
         'name' => $result[0]['agency_name'], 
         'account' => $result[0]['account_number'], 
         'phone' => $result[0]['phone'] 
         );
    } catch (Exception $e) {
        echo "Error: " . $e->getMessage();
    }} 
function set() { //Do Something Else}

header('Content-Type: application/json');
print json_encode($message); 
4

0 に答える 0