0

お時間を割いていただきありがとうございます。

管理者が提出された目標をレビューするアプリのページに取り組んでいます。各目標は、3 つの異なるテーブルのうちの 1 つです。「レビュー」、「完了」、「送信済み」の 3 つのテーブルがあります。

それぞれにブートストラップ btn-group があり、現在のステータスに応じて承認、元に戻す、または拒否するオプションがあります。ステータスが変更されると、目的を含む が削除され、適切なテーブルに追加されます。

ここで機能の例を見ることができます: http://jsfiddle.net/9mYZD/

ここに問題があります:

  • の 1 つが別のテーブルに移動されると、ドロップダウンのリンクを切り替えて、新しいテーブルの他のリンクと一致するようにする必要があります。
  • これを行うコードがありますが、機能するステートメントを作成しようとしています

    tableID = clicked.closest('table').attr('id');
    if(tableID = 'approve-objectives-submitted'){
                    clicked.html('<i class=" icon-undo"></i> Revert').removeClass('action-ok').addClass('action-revert');
                    }
                    else if(tableID = 'approve-objectives-review'){
                    clicked.html('<i class=" icon-ban-circle"></i> Deny').removeClass('action-ok').addClass('action-deny');
                    }
    

提供されたフィドルを見ると、このコードを承認機能に追加しています。次に、送信されたものから 1 つを承認すると、切り替えがうまく機能します。レビューから 1 つを承認すると (リストの一番下に追加されます)、1 つの拒否と 1 つの元に戻すのではなく、2 つの元に戻すボタンが表示されます。

この条件付きステートメントを機能させる方法について誰かがアイデアを持っている場合。または、一歩下がって別の視点からこれを見る必要があるかもしれません。どんな考えでも素晴らしいでしょう。

ありがとうございました!


CSVファイルに1行が必要なCSVをJSONに変換する方法は、1つのファイルJSONをエクスポートします

問題があり、あなたの助けが必要です! CSV を JSON に変換し、1 ファイルの JSON をエクスポートして CSV の 1 行を変換したい (JSON の内容は CSV 行の内容であり、JSON の名前はこの行の ID です)。やってみますが、JSONの表示とダウンロードだけです。この問題に対する提案を教えてください。ご協力いただきありがとうございます!

<?php

header('Content-type: application/json');

$feed = 'jsondata_palpad.csv';

$keys = array();
$newArray = array();

function csvToArray($file, $delimiter) { 
  if (($handle = fopen($file, 'r')) !== FALSE) { 
    $i = 0; 
    while (($lineArray = fgetcsv($handle, 4000, $delimiter, '"')) !== FALSE) { 
      for ($j = 0; $j < count($lineArray); $j++) { 
        $arr[$i][$j] = $lineArray[$j]; 
      } 
      $i++; 
    } 
    fclose($handle); 
  } 
  return $arr; 
} 

$data = csvToArray($feed, ',');

$count = count($data) - 1;

$labels = array_shift($data);  

foreach ($labels as $label) {
  $keys[] = $label;
}

$keys[] = 'id';

for ($i = 0; $i < $count; $i++) {
  $data[$i][] = $i;
}

for ($j = 0; $j < $count; $j++) {
  $d = array_combine($keys, $data[$j]);
  $newArray[$j] = $d;
}

header("Content-type: application/json");
header("Content-Disposition: attachment; filename=test.json");
header("Expires: 0");
header("Pragma: no-cache");
echo json_encode($newArray);

?>
4

2 に答える 2

1
if(tableID = 'approve-objectives-submitted')

条件に === not = が必要です

すぐに見えたのはこれ

于 2012-11-06T02:47:53.727 に答える
1

私が気づいたことがいくつかありました。

あなたのコードを変更approve: function ()し、新しいフィドルhttp://jsfiddle.net/5aVCp/を作成しました

まず、新しく追加されたテーブル行が目的の ID を失い、テーブル行から HTML を取得する方法が非常に小さなタイミング ウィンドウを残し、HTML を取得する前に要素が DOM から削除される可能性がありました。

次に、最後の div の内容を置き換えていたときに、btn-groupクラス div が消えていました。多分私はこの部分が何をしていたかを見逃していました。

最後に、他の行の値に従ってラベルを変更するために私が取ったアプローチは、アンカータグに既に含まれている属性を使用して、それらを新しいテーブルに追加し、必要に応じて HTML を操作した後に単純に見つけることでした:

   var dataId = clicked.attr('data-id');
   var ok = $('a[data-id="' + dataId + '"].action-ok');
   var deny = $('a[data-id="' + dataId + '"].action-deny');
   deny.removeClass('action-deny').addClass('action-revert').html('<i class=" icon-undo"></i> Revert');
   ok.removeClass('action-ok').addClass('action-deny').html('<i class=" icon-ban-circle"></i> Deny');

他のタイプのステータスごとにこれを行うことができます。クラスを更新する前に必ずセレクターを実行してください。そうしないと、セレクターを変更して再度選択することがあります。

うまくいけば、これが役に立ちます。

于 2012-11-06T03:51:59.330 に答える