2012-06-19 4 views
0

편집/operacoes.php반환 JSON 데이터를 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> 

일 e가 선택됩니다.

로직은 BD에있는 ID (다른 ID)는 오른쪽에 있어야하고 왼쪽에서 선택해야하는 옵션입니다 (오른쪽에 추가 선택하고 왼쪽에서 선택 제거).).

내 질문은 어떻게, json을 사용하여이 작업을 수행 할 수 있습니까? id를 jquery로 가져온 다음 루프하여 선택 항목을 다른 선택 항목으로 이동하십시오.

편집 나는 필요한 ID를 제공하기 위해 다른 PHP 파일을 만들었습니다. PHP는 ["2","3","4"]을 반환합니다. function(data){loophere}

+0

JSON은 단지 데이터 전송 기능입니다. JSON 데이터를 사용하고 양식을 적절하게 채우기 위해서는 자바 스크립트 코드를 작성해야합니다. –

답변

1

저는 PHP에서 문자열의 배열을 전달할 것입니다 (json은 ['string','string','string']처럼 보입니다.) 그리고 루프를 사용하여 "다른쪽에" .

당신은 어쩌면 전달 된 요소의 언어 번역이 날을 던지고, 아직 서버에서 그 반환하고 어디는 표시되지 않습니다,하지만 당신이 이들 중 하나 만들고 있다는 것을 알 수 있어요

:

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

A에서 B로 제거해야하는 요소를 문자열 배열로 전달하고 배열 요소를 반복하면됩니다.

+0

필자는 필요한 ID를 제공하기 위해 다른 PHP 파일을 만들었습니다. PHP는'[ "2", "3", "4"]'를 반환합니다. (데이터에서 var k) {var d = data [k];에 대해서는 function (data) {loophere}' – silentw

+1

'를 jQuery.post에서 어떻게 순환 할 것인가? // 여기에서 d를 사용하십시오.}' – jcolebrand

+0

고마워요. – silentw

0

음, 원하는 것을 얻기위한 몇 가지 옵션이 있습니다.

당신의 ajax 호출에서, 나는 왼쪽 선택에서 선택된 ID와 오른쪽에있는 ID의 배열을 PHP로 전달할 것이고, PHP를 반환 할 때 당신은 데이터가 채워질 객체를 얻을 것이다. 왼쪽 선택을 선택하고 오른쪽에서 다시 비움을 선택하여 혼란스러워하지 않고 각 선택 항목의 컨트롤을 갖습니다.