首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从PHP返回JSON数据

问从PHP返回JSON数据
EN

Stack Overflow用户
提问于 2012-06-19 16:06:52
回答 2查看 583关注 0票数 0

edit/operacoes.php

代码语言:javascript
复制
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:

代码语言:javascript
复制
$.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:

代码语言:javascript
复制
<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>

这是伟大的,除了选择。

逻辑是,BD中的BD(另一个)是需要在右边选择和从左select中删除的选项(追加到右侧select和从左侧select删除)。

我的问题是,如何使用json来实现这一点?获取jquery的ids,然后循环它们,将选项从一个select移动到另一个select?

编辑,我创建了另一个php文件,只是为了给出我需要的ids。PHP返回["2","3","4"]。如何在jQuery.post function(data){loophere}中循环通过

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-06-19 16:12:48

我会从PHP中传递一个字符串数组( json看起来像['string','string','string'],然后在上面使用一个循环来指示应该将哪些字符串“放在另一边”)。

我还不知道从服务器中返回这些内容的位置,所以可能传递元素上的语言转换让我无法理解,但是很明显,您是在做这样的一个:

代码语言:javascript
复制
    A           B
[       ]   [       ]
[       ] > [       ]
[       ] < [       ]
[       ]   [       ]

只需将需要从A中移除的元素作为字符串数组传递到B中,并在数组元素上循环。

票数 1
EN

Stack Overflow用户

发布于 2012-06-19 16:25:15

好吧,有几个选项可以实现你想要的。

在ajax调用中,我将向php传递从左侧select选择的选定id和从右侧select返回的id数组,在返回php时,您将得到一个对象,该对象的数据将填充在左侧select中,右边select将首先清空它们,这样您就不会感到困惑,并且在每个选择上都有元素的控件。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11104964

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档