Ergebnis 1 bis 2 von 2
  1. #1
    derTyp ist offline Grünschnabel
    registriert
    13-04-2008
    Beiträge
    1

    PHP Script mit Ajax für Smarty zerlegen

    Hallo @,

    ich habe hier ein PHP Script mit Ajax welches ich bei mir einbinden möchte. Dazu muss es aber für Smarty "zerlegt" werden.
    Kann mir jemand dabei helfen, sprich mir Ansätze geben?

    <?php
    if ( !defined( 'SMARTY_DIR' ) )
    include_once( 'init.php' );
    require('js/xajax_core/xajax.inc.php');
    $xajax = new xajax();
    //$xajax->configure('debug',true);
    class myXajaxResponse extends xajaxResponse {

    function addCreateOptions($sSelectId, $options) {
    $this->script("document.getElementById('".$sSelectId."').length=0");
    if (sizeof($options) >0) {
    foreach ($options as $option) {
    $this->script("addOption('".$sSelectId."','".
    $option['txt']."','".$option['val']."');");
    }
    }
    }
    }

    $modesRs = mysql_query("SELECT DISTINCT(name) FROM countries") or die(mysql_error());
    while ($rs=mysql_fetch_assoc($modesRs)) {
    $modes[]=$rs["name"];
    }

    function addtxtstateprovince($selectId, $mode) {
    global $txtstateprovince;
    $objResponse = new myXajaxResponse();
    $txtstateprovinceRs = mysql_query(sprintf(
    "SELECT DISTINCT(name) FROM states WHERE countrycode = '%s'", $mode));
    while ($rs=mysql_fetch_assoc($txtstateprovinceRs)) {
    $txtstateprovince[]=array("txt"=>$rs["name"], "val"=>$rs["name"]);
    }
    $objResponse->addCreateOptions($selectId, $txtstateprovince);
    return $objResponse;
    }
    function addtxtcity($selectId, $transport) {
    global $txtcity;
    $objResponse = new myXajaxResponse();
    $txtcityRs = mysql_query(sprintf
    ("SELECT name FROM cities WHERE statecode = '%s'", $transport));
    while ($rs=mysql_fetch_assoc($txtcityRs)) {
    $txtcity[]=array("txt"=>$rs["name"], "val"=>$rs["name"]);
    }
    $objResponse->addCreateOptions($selectId, $txtcity);
    return $objResponse;
    }
    $xajax->registerFunction("addtxtstateprovince");
    $xajax->registerFunction("addtxtcity");
    $xajax->processRequest();

    // Testausgabe
    if (isset($_POST['send'])) {
    print_r($_POST);
    }
    ?>

    <html>
    <?
    $xajax->printJavascript("js/");
    ?>
    <script type="text/javascript">
    function addOption(selectId, txt, val) {
    var objOption = new Option(txt, val);
    document.getElementById(selectId).options.add(objOption);
    }
    </script>
    </head>
    <body>
    <form name="frmPlan" method="post" action="">
    Land :
    <select name="txtfrom" id="txtfrom"
    onchange="xajax_addtxtstateprovince('txtstateprovince', document.frmPlan.txtfrom.value)">
    <option value="">--select--</option>
    <? foreach ($modes as $mod) { ?>
    <option value="<?= $mod?>"><?= $mod?></option>
    <? } ?>
    </select>
    Bezirk :
    <select name="txtstateprovince" id="txtstateprovince"
    onchange="xajax_addtxtcity('txtcity', document.frmPlan.txtstateprovince.value)">
    <option value="">--select--</option>
    </select>
    Stadt :
    <select name="txtcity" id="txtcity"><option value="">--select--</option>
    </select>
    <input type="submit" value="Submit" name="send">
    </form>
    </body>
    </html>

    Speziell weiss ich nicht wie ich die foreach Schleife im Template darstellen muss und die Ausgabe "$xajax->printJavascript("js/");".
    Bei den anderen beiden Dropdownmenues müsste doch normalerweise (ohne den Gebrauch von Ajax) auch eine Variable für die Werte stehen. Wie wird das mit Smarty und Ajax gelöst?

    HeikoH

  2. #2
    Avatar von Albu
    Albu ist offline Super Moderator
    registriert
    04-07-2001
    Beiträge
    13.501

    AW: PHP Script mit Ajax für Smarty zerlegen

    PHP läuft auf dem Server, Javascript auf dem Client. Demzufolge interessiert sich Ajax Null für Deinen PHP Code, es kann, bzw. sollte gar keinen Unterschied zwischen PHP oder statischem HTML ausmachen können.
    Was folglich heißt, dass Du Ajax aus der Betrachtung ausklammern kannst.
    1. Get people to play Space Taxi
    2. Sell real estates on neptun
    3. Profit!

    IE is not a browser, it is a scream.


    Outside of a dog, a book is man's best friend. Inside of a dog, it's too dark to read.

Ähnliche Themen

  1. PHP Script um Inhalt zu verwalten
    Von NewNoise im Forum Serverseitige Programmierung
    Antworten: 3
    Letzter Beitrag: 25-11-2007, 03:31
  2. Antworten: 0
    Letzter Beitrag: 03-11-2007, 00:13
  3. Verständnisproblem mit PHP Script und JavaScript
    Von krusty007 im Forum JavaScript
    Antworten: 2
    Letzter Beitrag: 24-10-2006, 10:11
  4. php Script beim reload nicht nochmals ausführen
    Von acid im Forum Serverseitige Programmierung
    Antworten: 7
    Letzter Beitrag: 15-08-2001, 21:01
  5. Formulardaten an php script übergeben
    Von acid im Forum Serverseitige Programmierung
    Antworten: 2
    Letzter Beitrag: 15-08-2001, 02:50

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •