Ankündigung

Einklappen
Keine Ankündigung bisher.

wie kann ich onChange="this.form.submit()" mit Paramtern benutzen?

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • wie kann ich onChange="this.form.submit()" mit Paramtern benutzen?

    Wenn ich das Formular absende, bekomme ich die entsprechende Variable "save" per Post ausgeliefert.
    Wenn es dagegen durch onChange="this.form.submit()" abgesendet wird fehlt mir diese. Auch per REQUEST nicht.
    Wie kann ich onChange="this.form.submit()" in einem Textfeld mit Parametern ausliefern?

    PHP-Code:
    // Ergebnis
    $ergebnis        mysql_query("SELECT * FROM ".$vor_det." WHERE LFS='".$_POST['save']."'") or die(mysql_error());
    $zeile_ergebnis mysql_fetch_array($ergebnis);
    echo 
    $zeile_ergebnis['LFS'];

    // Frage
    echo '
    <form name="vorschlag" method="post" action="">
      <table border="1" align="center" cellpadding="5">'
    ;
      
    $positionen       mysql_query("SELECT * FROM ".$vor_det."") or die(mysql_error());
      while (
    $zeile_pos mysql_fetch_array($positionen))  {
      echo 
    '
        <tr>
          <td>
            <input type="hidden" name="speicherposition" value="'
    .$zeile_pos['LFS'].'">
            <input type="text" name="text_1" value='
    .$zeile_pos['TEXT_1'].' onChange="this.form.submit()">
            <input type="submit" name="save" value="'
    .$zeile_pos['LFS'].'">
          </td>
        </tr>'
    ;
      }
      echo 
    '
      </table>
    </form>'



  • #2
    Das würde ich an Deiner Stelle mit Ajax lösen

    PHP-Code:
    <div id="header_suche">
     <
    form name="suche" method="post" action="${getPath}/${aSession/language}/article/search">
     <
    strong>${text/such_feld_header}</strong>
     <
    input autocomplete="off" id="inputString" onKeyUp="lookup(this.value,'${getPath}');" name="search" class="textfield" type="text" style="width:180px; height:14px;" tal:attributes="value search |  NULL" />
     <
    input type="image" src="${getPath}/assets/images/header_suche_button.png" />

     <
    div class="suggestionsBox" id="suggestions" style="display: none;">
      <
    div class="suggestionInfo">
      <
    span style="float:left; color:#000;">${text/vorschlag_suche}</span>
      <
    span style="float:right;"><a title="close" style="cursor: pointer" onclick="hide('suggestions');">X</a>&nbsp;</span>
      </
    div>
     <
    div class="suggestionList" id="autoSuggestionsList"></div>
    </
    div>

    </
    form>
    </
    div
    mein dazugehörige JS Code:
    Code:
    function lookup(inputString,CurrentServer)
    {
      if(inputString.length <= 2)
      {
        $('#suggestions').hide();
      }
      else
      {
        $.post(CurrentServer+"/controller/ajax_article_search.php", {queryString: ""+inputString+""}, function(data)
        {
          if(data.length >0)
          {
            $('#suggestions').show();
            $('#autoSuggestionsList').html(data);
          }
         });
      }
    }
    
    function fill(thisValue)
    {
      $('#inputString').val(thisValue);
      $('#suggestions').hide();
      
      document.suche.submit();
    }
    und meine Ajax ausführende PHP Datei

    PHP-Code:
    <?php

    date_default_timezone_set
    ('Europe/Berlin');
    $dir_root dirname(__FILE__);
    define('DIR_ROOT',  str_replace('controller'''$dir_root));

    session_start();
    include(
    'Base/Db.php');
    $aField = array('sprache''bezeichnung''artnr');

    $db = new db;
    $db->setDB('shop');
    $db->setTable('Artikeltexte');
    $db->addTable('Artikel''artnr');
    $db->setSelect('Artikel.artnr');
    $db->addSelect('Artikeltexte.artnr, Artikeltexte.bezeichnung');

    $db->setWhere("Artikeltexte.".$aField['0']." = '?'"$_SESSION['language']);
    $db->setWhere("Artikeltexte.".$aField['1']." LIKE '%?%'"$_POST['queryString']);
    $db->setWhere("Artikel.aktiv ='?'"'ja');

    for(
    $i=2$i<count($aField); $i++)
    {
      
    $db->addWhere("Artikeltexte.".$aField[$i]." LIKE '%?%'"$_POST['queryString']);
      
    $db->setWhere("Artikeltexte.".$aField['0']." = '?'"$_SESSION['language']);
      
    $db->setWhere("Artikel.aktiv = '?'"'ja');
      
    $db->setWhere("Artikel.artnr = ?"'Artikeltexte.artnr');
    }

    $db->setLimit('15');
    $db->setQuery('select'TRUE);

    for(
    $i=0$i<count($db->aValue); $i++)
    {
      echo 
    '<li onclick="fill(\''.$db->aValue[$i]['bezeichnung'].'\');">'.$db->aValue[$i]['artnr'].' - '.substr($db->aValue[$i]['bezeichnung'],0,60).'</li>';
    }
    ?>
    Gruß Werner
    Mein kleines Projekt: Fussball Satrup
    Wird ein OpenSource CMS für Fussballvereine

    Kommentar


    • #3
      Oh, oh, mit Ajax hab ich noch gar keine Erfahrungen.
      Das wäre sicher zukünftig lernenswert, aber aus Zeitgründen für diese eine Funktion im Moment jedenfalls zu aufwändig für mich.

      Trotzdem danke!

      Kommentar


      • #4
        @woskamp:
        dein JS-Code sieht bisl nach jQuery aus...
        "My software never has bugs, it just develops random features."
        "Real programmers don't comment. If it was hard to write, it should be hard to understand!"

        Kommentar

        Lädt...
        X