質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

90.34%

  • PHP

    21313questions

    PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

  • JavaScript

    17506questions

    JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

  • jQuery

    7104questions

    jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

  • CSS

    6189questions

    CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

  • HTML5

    4297questions

    HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

[回答2件は長いので自己投稿] bootgridを使用しているが、 データの取得の仕方をPHPからJavaScriptもしくはC#の「.cs」に変更したい。&「編集」ボタンが出てこない

解決済

回答 3

投稿 編集

  • 評価
  • クリップ 0
  • VIEW 471
退会済みユーザー

退会済みユーザー

https://www.phpflow.com/php/addedit-delete-record-using-bootgrid-php-mysql/
上のページを参考に、下記を作成しました。

 ソースコード

<!--HTML1-->
<body>
    <form id="myform" method="post">
        <table id="employee_grid" class="table table-condensed table-hover table-striped" data-toggle="bootgrid">
            <thead>
                <tr>
                    <th data-column-id="id" data-type="numeric" data-identifier="true" data-order="asc" data-width="27%">コード</th>
                    <th data-column-id="employee_namae" data-width="27%">名称</th>
                    <th data-column-id="employee_received" data-width="27%">割引率</th>
                    <th data-column-id="commands" data-formatter="commands" data-sortable="false" data-width="19%">編集・削除</th>
                </tr>
            </thead>
            <tbody>
                <%
                    foreach (var _店舗 in _店舗一覧)
                    {
                %>
                <tr data-row-id="<%= _店舗["コード"] %>" class="modal-tr">
                    <td id="Code-<%= _店舗["コード"] %>">
                        <input type="text" value="<%= _店舗["コード"] %>" /><%= _店舗["コード"] %></td>
                    <td id="Meisyo-<%= _店舗["コード"] %>">
                        <input type="text" value="<%= _店舗["コード名"] %>" /><%= _店舗["コード名"] %></td>
                    <td id="Per-<%= _店舗["コード"] %>">
                        <input type="text" value="<%= _店舗["割引率"] %>" /><%= _店舗["割引率"] %></td>
                    <td data-column-id="commands"></td>
                </tr>
                <%
                    }
                %>
            </tbody>
        </table>
    </form>
    <div class="form-group text-center">
        <div class="col-lg-12">
            <button id="screen" type="button" class="btn btn-info pause"><span class="glyphicon glyphicon-plus"></span>&nbsp;追加</button>
            <button id="close" type="button" class="btn btn-info"><span class="glyphicon glyphicon-remove"></span>&nbsp;閉じる</button>
            <br>
        </div>
    </div>
<!--HTML2 モーダル・ダイアログ新規(HTML1の「追加」ボタンを押した際に表示)-->

    <div class="modal fade" id="add_model">
        <div class="modal-dialog">
            <div class="modal-content">
                <div class="modal-header">
                    <button type="button" class="close" data-dismiss="modal" aria-hidden="true"><span></span></button>
                    <h4 class="modal-title">新規</h4>
                </div>

                <div class="modal-body2">
                    <form id="frm_add" method="post">
                        <input type="hidden" value="add" name="action" id="action">
                        <table class="center">
                            <tr>
                                <td>
                                    <table class="table table-condensed table-bordered table-hover hos_table_data">
                                        <thead>
                                            <tr class="active">
                                                <th class="control-label"><span>コード</span></th>
                                                <th class="control-label"><span>名称</span></th>
                                                <th class="control-label"><span>割引率</span></th>
                                            </tr>
                                        </thead>
                                        <tbody >
                                            <tr style="height: 30px;">
                                                <td class="id">
                                                    <input type="text" maxlength="2" class="form-control fm" style="width: 50px; text-align: right; font-size: larger; padding: 3px;" id="id" name="id" placeholder="00" /></td>
                                                <td class="namae">
                                                    <input type="text" maxlength="20" class="form-control fm" style="width: 300px; text-align: right; font-size: larger; padding: 3px;" id="namae" name="namae" placeholder="20字以内で入力してください" /></td>
                                                <td class="received">
                                                    <input type="text" maxlength="3" class="form-control fm" style="width: 50px; text-align: right; font-size: larger; padding: 3px;" id="received" name="received" placeholder="000" /></td>
                                            </tr>
                                        </tbody>
                                    </table>
                                </td>
                            </tr>
                        </table>
                    </form>
                </div>
                <div class="modal-footer">
                    <div class="form-group text-center">
                        <div class="col-lg-12">
                            <button id="btn_add" type="button" class="btn btn-info pause"><i class="glyphicon glyphicon-list"></i>&nbsp;登録</button>
                            <button id="close2" type="button" class="btn btn-info" data-dismiss="modal"><i class="glyphicon glyphicon-remove"></i>&nbsp;キャンセル</button>
                            <br>
                        </div>
                    </div>
                </div>
            </div>
        </div>
    </div>
<!--HTML3 モーダル・ダイアログ編集(HTML1のdata-column-id="commands"内の「編集」ボタンを押した際に表示)-->
    <div class="modal fade" id="edit_model">
        <div class="modal-dialog">
            <div class="modal-content">
                <div class="modal-header">
                    <button type="button" class="close" data-dismiss="modal"aria-hidden="true"><span></span></button>
                    <h4 class="modal-title">編集</h4>
                </div>

                <div class="modal-body2">
                    <form id="frm_edit" method="post">
                        <input type="hidden" value="edit" name="action" id="action">
                        <input type="hidden" value="0" name="edit_id" id="edit_id">
                        <table class="center">
                            <tr>
                                <td>
                                    <table class="table table-condensed table-bordered table-hover hos_table_data">
                                        <thead>
                                            <tr class="active">
                                                <th class="control-label"><span>コード</span></th>
                                                <th class="control-label"><span>名称</span></th>
                                                <th class="control-label"><span>割引率</span></th>
                                            </tr>
                                        </thead>
                                        <tbody>
                                            <tr style="height: 30px;" data-row-id="dialogid">
                                                <td class="id">
                                                    <input type="text" maxlength="2" class="form-control fm" style="width: 50px; text-align: right; font-size: larger; padding: 3px;" id="id" name="id" placeholder="00" /></td>
                                                <td class="edit_namae">
                                                    <input type="text" maxlength="20" class="form-control fm" style="width: 300px; text-align: right; font-size: larger; padding: 3px;" id="edit_namae" name="edit_namae" placeholder="20字以内で入力してください" /></td>
                                                <td class="edit_received">
                                                    <input type="text" maxlength="3" class="form-control fm" style="width: 50px; text-align: right; font-size: larger; padding: 3px;" id="edit_received" name="edit_received" placeholder="000" /></td>
                                            </tr>
                                        </tbody>
                                    </table>
                                </td>
                            </tr>
                        </table>
                    </form>
                </div>
                <div class="modal-footer">
                    <div class="form-group text-center">
                        <div class="col-lg-12">
                            <button id="btn_edit" type="button" class="btn btn-info pause"><i class="glyphicon glyphicon-list"></i>&nbsp;登録</button>
                            <button id="close3" type="button" class="btn btn-info" data-dismiss="modal"><i class="glyphicon glyphicon-remove"></i>&nbsp;キャンセル</button>
                            <br>
                        </div>
                    </div>
                </div>
            </div>
        </div>
    </div>
<!--入れているjs、css一覧 -->
    <link href="./bootstrap3.2/bootstrap.min.css" />
    <link href="./bootstrap3.1.1/bootgrid.css" />
    <link href="./bootstrap3.1.1/jquery.bootgrid.css" />
    <link href="./bootstrap3.1.1/Examples.css" />
    <link href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.10.3/themes/start/jquery-ui.css">
    <script src="./jquery-1.10.2.min.js></script>
    <script src="./bootstrap3.2/bootstrap.min.js"></script>
    <script src="./bootstrap3.1.1/jquery.bootgrid.js"></script>
    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.10.3/jquery-ui.min.js"></script>


長くなったのでコメントに残り書きます

 やってみたこと、考え

「url」を「.cs」にリンク変更→特に変わりなし

 補足情報(FW/ツールのバージョンなど)

Visual studio 2017使用

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正、ベストアンサー選択の依頼

  • asahina1979

    2018/07/26 20:56

    見づらい

    キャンセル

  • x_x

    2018/07/27 12:19

    PHPからC#へ移植したいということなのでしょうか? Bootgridは関係ありますか?

    キャンセル

  • 退会済みユーザー

    退会済みユーザー

    2018/07/27 20:11

    はい、その通り、PHPからC#へ移植したいです。BootGridで作成していたので、関係あると思っていたのですが…。もしかしたら関係ないですか?

    キャンセル

回答 3

check解決した方法

0

そもそもの作り方が間違っておりました。
PHP→C#への移植ではなく、
C#内で処理を行うやり方で作ることになりました。
まだ制作中ですが、「PHP→C#への移植」という問題としては、
「解決」とさせていただければと思います。

コメントくださった方、ありがとうございました。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

0

//response.php
include("connection.php");
 $db = new dbObj();
 $connString =  $db->getConnstring();

 $params = $_REQUEST;

 $action = isset($params['action']) != '' ? $params['action'] : '';
 $empCls = new Employee($connString);

 switch($action) {
 default:
 $empCls->getEmployees($params);
 return;
 }
 class Employee {
 protected $conn;
 protected $data = array();
 function __construct($connString) {
 $this->conn = $connString;
 }

 public function getEmployees($params) {

    $this->data = $this->getRecords($params);

    echo json_encode($this->data);
  }

 function getRecords($params) {
    $rp = isset($params['rowCount']) ? $params['rowCount'] : 10;

    if (isset($params['current'])) { $page  = $params['current']; } else { $page=1; };  
        $start_from = ($page-1) * $rp;

    $sql = $sqlRec = $sqlTot = $where = '';

    if( !empty($params['searchPhrase']) ) {   
      $where .=" WHERE ";
      $where .=" ( employee_namae LIKE '".$params['searchPhrase']."%' ";     
      $where .=" OR employee_received LIKE '".$params['searchPhrase']."%' )";
     }

    $sql = "SELECT * FROM `employee` ";
    $sqlTot .= $sql;
    $sqlRec .= $sql;

    if(isset($where) && $where != '') {

      $sqlTot .= $where;
      $sqlRec .= $where;
    }
    if ($rp!=-1)
    $sqlRec .= " LIMIT ". $start_from .",".$rp;


    $qtot = mysqli_query($this->conn, $sqlTot) or die("error to fetch tot employees data");
    $queryRecords = mysqli_query($this->conn, $sqlRec) or die("error to fetch employees data");

    while( $row = mysqli_fetch_assoc($queryRecords) ) { 
      $data[] = $row;
    }

    $json_data = array(
      "current"            => intval($params['current']), 
      "rowCount"            => 10,      
      "total"    => intval($qtot->num_rows),
      "rows"            => $data
      );
    return $json_data;
  }

case 'add':
  $empCls->insertEmployee($params);
break;

function insertEmployee($params) {
 $data = array();;
 $sql = "INSERT INTO `employee` (employee_namae, employee__received) VALUES('" . $params["namae"] . "', '" . $params["received"] . "');  ";

 echo $result = mysqli_query($this->conn, $sql) or die("error to insert employee data");
 }

 case 'edit':
    $empCls->updateEmployee($params);
break;

function updateEmployee($params) {
        $data = array();
        //print_R($_POST);die;
        $sql = "Update `employee` set employee_namae = '" . $params["edit_namae"] . "', employee_received='" . $params["edit_received"] . "' WHERE id='".$_POST["edit_id"]."'";        
        echo $result = mysqli_query($this->conn, $sql) or die("error to update employee data");
        }

case 'delete':
  $empCls->deleteEmployee($params);
break;

function deleteEmployee($params) {
        $data = array();
        //print_R($_POST);die;
        $sql = "delete from `employee` WHERE id='".$params["id"]."'";        
        echo $result = mysqli_query($this->conn, $sql) or die("error to delete employee data");
}

ただ、今回データを取ってきている(取ってきたい)のが、下記のC#の「.cs」内です。

// C#の「.cs」内でのデータの取り方

public HttpContext baseContext;

    private List<Dictionary<string, string>> __店舗一覧;
    public List<Dictionary<string, string>> _店舗一覧
    {
        get
        {
            if (__店舗一覧 == null)
            {
                var parameters = new Dictionary<string, string>();
                parameters.Add("種別", _LoginContext._種別);
                var data = new List<Dictionary<string, string>>();
                using (var connection = new SqlConnection(_LoginContext._接続文字列))
                {
                    connection.Open();
                    using (var command = new SqlCommand())
                    {
                        var method = MethodBase.GetCurrentMethod();
                        var text = string.Format("/* [{0}.{1}] */", method.DeclaringType, method.Name) + /*string.Format(*/@"
     DECLARE @種別 INT; SET @種別 = <D:種別>;
    select distinct
        コード, 
        コード名, 
        割引率 
      from
        店舗一覧マスタ
      order by
        コード
     ";
                        command.Connection = connection;
                        command.CommandText = hos.Utility.ReplaceSql(text, parameters);
                        command.CommandTimeout = int.Parse(ConfigurationManager.AppSettings["SqlCommandTimeout"]);
                        hos.Utility.SqlLog(Context, command);
                        using (var reader = command.ExecuteReader())
                        {
                            while (reader.Read())
                            {
                                var dictionary = new Dictionary<string, string>();
                                for (var i = 0; i < reader.FieldCount; i++)
                                {
                                    var name = reader.GetName(i);
                                    var value = reader.GetValue(i).ToString();
                                    dictionary.Add(name, value);
                                }
                                data.Add(dictionary);
                            }
                        }
                    }
                }
                __店舗一覧 = data;
            }
            return __店舗一覧;
        }

上記で取ってきたデータで、jsonの作成をし、
HTML1にデータを出したいです。

あと、現状だと、.csのループでしか
データを取ってきていないからか、
「編集」ボタンが出てきません。
こちらの原因も、これで合っているのか、
合っている場合どうすればいいのか教えてほしいです。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

-1

//HTML1の「employee_grid」の処理
var grid = $(function () {
    $("#employee_grid").bootgrid({
        ajax: true,
        rowSelect: true,
        post: function () {
            return {
                id: "b0df282a-0d67-40e5-8558-c9e93b7befed"
            };
        },
        url: "./bootstrap3.1.1/response.php",    // ここのデータを、phpじゃなくしたい。
        formatters: {
            "commands": function (column, row) {
                return "<button type=\"button\" class=\"btn btn-xs btn-default command-edit\" data-row-id=\"" + row.id + "\"><span class=\"glyphicon glyphicon-edit\">編集</span></button> " +
                    "<button type=\"button\" class=\"btn btn-xs btn-default command-delete\" data-row-id=\"" + row.id + "\"><span class=\"glyphicon glyphicon-trash\">削除</span></button>";
            }
        }
    }).on("loaded.rs.jquery.bootgrid", function () {
        grid.find(".command-edit").on("click", function (e) {

            var ele = $(this).parent();
            var g_id = $(this).parent().siblings(':first').html();
            var g_name = $(this).parent().siblings(':nth-of-type(2)').html();

            $("#edit_model").modal('show');
            if ($(this).data("row-id") > 0) {

                $('#edit_id').val(ele.siblings(':first').html());                 $('#edit_namae').val(ele.siblings(':nth-of-type(2)').html());
                $('#edit_received').val(ele.siblings(':nth-of-type(3)').html());
            } else {
                alert('Now row selected! First select row, then click edit button');
            }
        }).end().find(".command-delete").on("click", function (e) {

            var conf = confirm('Delete ' + $(this).data("row-id") + ' items?');
            alert(conf);
            if (conf) {
            }
        });
    });
});
//ボタンを押した際の処理一覧
$("#command-add").click(function () {
    $('#add_model').modal('show');
});

$("#btn_add").click(function () {
    ajaxAction('add');
});

$("#btn_edit").click(function () {
    ajaxAction('edit');
});

function ajaxAction(action) {
    data = $("#frm_" + action).serializeArray();
    $.ajax({
        type: "POST",
        url: "./bootstrap3.1.1/response.php",     // ここのデータを、phpじゃなくしたい。
        data: data,
        dataType: "json",
        success: function (response) {
            $('#' + action + '_model').modal('hide');
            $("#employee_grid").bootgrid('reload');
        }
    });
}

$("#close").click(function (e) {
    window.close();
});

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 90.34%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

同じタグがついた質問を見る

  • PHP

    21313questions

    PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

  • JavaScript

    17506questions

    JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

  • jQuery

    7104questions

    jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

  • CSS

    6189questions

    CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

  • HTML5

    4297questions

    HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

  • トップ
  • PHPに関する質問
  • [回答2件は長いので自己投稿] bootgridを使用しているが、 データの取得の仕方をPHPからJavaScriptもしくはC#の「.cs」に変更したい。&「編集」ボタンが出てこない