0

edit / operacoes.php

header('Content-Type: application/json');
include('../../lib/mysql.class.php');

$db = new MySQL();
if($db->Error()) $db->Kill();

//VARIÁVEIS DA FORM
$id = intval($_POST['id']);

$sql = "SELECT * FROM operacoes WHERE id=$id";
if(!$db->Query($sql)) $db->Kill();

$db->MoveFirst();
$row = $db->Row();
$data['nome'] = $row->nome;
$data['produto'] = $row->produto;
$data['componente'] = $row->componente;
$data['materiaprima'] = $row->materiaprima;

echo json_encode($data);

jQuery:

$.post('edit/operacoes.php',{id:id},function(data){
    $('div.form-container h1.title').text("Editar Existente");
    $('input#idbd').empty().val(id);
    $('input#nome').empty().val(data.nome);
    $('input#produto').attr('checked', (data.produto==1)?true:false);
    $('input#componente').attr('checked', (data.componente==1)?true:false);
    $('input#materiaprima').attr('checked', (data.materiaprima==1)?true:false);
    $('div#addbuttons').css('display','none');
    $('div#editbuttons').css('display','block');
    showPopup();
});

HTML:

<tr>
    <td colspan="3" class="input listas">
        <select multiple="multiple" name="escolha_ferramentas" id="escolha_ferramentas" size="15" class="list">
            <option value="3">Ferramenta 3</option>
            <option value="4">Ferramenta 4</option>
            <option value="5">Ferramenta 5</option>
            <option value="6">Ferramenta 6</option>
        </select>
        <div class="list-controls">
            <input type="button" value=">" id="next-ferramentas"><br><br>
            <input type="button" value="<" id="prev-ferramentas">
        </div>
        <select multiple="multiple" name="ferramentas[]" id="ferramentas" size="15" class="list">
        </select>
        <div style="clear:both;"></div>
    </td>
</tr>

これは、selectを除いて、うまく機能します。

ロジックは、BD(別のID)にあるIDは、右選択にあり、左選択から削除する必要があるオプションです(右選択に追加し、左選択から削除します)。

私の質問は、jsonを使用してこれをどのように達成できるかということです。jqueryのIDを取得し、それらをループして、オプションを1つの選択から別の選択に移動しますか?

編集 必要なIDを与えるためだけに別のphpファイルを作成しました。PHPはを返します["2","3","4"]。jQuery.postでそれをループするにはどうすればよいですかfunction(data){loophere}

4

2 に答える 2

1

PHPから文字列の配列を渡します(jsonは次のよう['string','string','string']になり、その上でループを使用して、「反対側」に配置する文字列を示します。

サーバーからそれらをどこに返しているのかまだわかりません。そのため、渡された要素の言語翻訳が私を失望させている可能性がありますが、これらのいずれかを作成していることは明らかです。

    A           B
[       ]   [       ]
[       ] > [       ]
[       ] < [       ]
[       ]   [       ]

削除する必要のある要素を文字列配列としてAからBに渡し、配列要素をループするだけです。

于 2012-06-19T16:12:48.413 に答える
0

さて、あなたが望むものを達成するためのいくつかのオプションがあります。

あなたのajax呼び出しでは、左選択から選択されたIDと右選択からのIDの配列をphpに渡し、phpを返すと、左選択と入力で入力されるデータを含むオブジェクトを取得します。右の選択で最初にそれらを空にするので、混乱することはなく、各選択の要素を制御できます。

于 2012-06-19T16:25:15.897 に答える