Visualizzazione risultati 1 fino 1 di 1

Discussione: [XML/PHP] Salvare menu sortable

  1. #1
    L'avatar di mycarlo
    mycarlo non è connesso Utente attivo
    Data registrazione
    06-10-2009
    Residenza
    $this->s50
    Messaggi
    467

    Predefinito [XML/PHP] Salvare menu sortable

    Salve a tutti!
    Oggi ho un problema che non riesco a risolvere .
    In pratica con jquery ho fatto un menu sortable (ordinabile...) che invia tramite ajax la posizione degli elementi.
    JQuery mi crea una query string del genere:
    Codice:
    menulato[]=3&menulato[]=1&menulato[]=2
    Così in $_GET["menulato"] avrò i dati.
    Codice PHP:
    <?php
    error_reporting
    (E_ALL);

    $xml = simplexml_load_file("menulato.xml");
    $ids = $_GET["menulato"];

    foreach(
    $ids as $pos => $value) {
    $xml->box[$pos]["id"] = $value;
    }

    file_put_contents("menulato.xml", $xml->asXML());
    ?>
    Allora il file menulato.xml è strutturato:
    Codice HTML:
    <?xml version="1.0"?>
    <menulato>
    <box id="1">
    <titolo>Box1</titolo>
    <contenuto>Ciao mondo!</contenuto>
    </box>
    <box id="2">
    <titolo>Box2</titolo>
    <contenuto>hello world</contenuto>
    </box>
    <box id="3">
    <titolo>Box3</titolo>
    <contenuto>boh</contenuto>
    </box>
    </menulato>
    Il problema sta in queste righe:
    Codice PHP:
    foreach($ids as $pos => $value) {
    $xml->box[$pos]["id"] = $value;
    }
    Dato che l'ordine è tutto purchè quello giusto.
    Non riesco a capire come fare, oppure è jquery che mi da i dati sbagliati (non penso proprio)???

    http://mycarlo.altervista.org/my/menulato/

    Spostate i box e ricaricate pagina, per vedere se le modifiche hanno avuto effetto.
    Chiedo aiuto a voi

    P.S. Per ordinare i dati faccio:
    Codice PHP:
    <?php
    $xml
    = simplexml_load_file("menulato.xml");
    $boxes = array();
    $j = 1;

    foreach(
    $xml->box as $box) {
    $boxes[(int) $box["id"]] = $box;
    }

    ksort($boxes);

    foreach(
    $boxes as $box) {
    echo
    "<li id=\"menulato_{$j}\">\n<h3>{$box->titolo}</h3>\n{$box->contenuto}</li>\n";
    $j++;
    }
    ?>
    P.S. 2 Ho risolto, finalmente ho capito come dovevo fare . Se può servire a qualcuno:
    Codice PHP:
    <?php
    error_reporting
    (E_ALL);

    $xml = simplexml_load_file("menulato.xml");
    $ids = $_GET["menulato"];

    foreach(
    $ids as $position => $item) {
    foreach(
    $xml->box as $box) {
    if(
    $box["id"] == $item) {
    $box["position"] = $position;
    }
    }
    }

    file_put_contents("menulato.xml", $xml->asXML());
    ?>
    Saluti!
    Ultima modifica di mycarlo : 30-11-2009 alle ore 15.13.58 Motivo: RISOLTO!

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •