Hallo,
sorry das ich mich erst jetzt melde, aber beim dem schönen Wetter am Wochenende war ich nicht am PC.
Ich versuche jetzt mal etwas genauer zu beschreiben.
Ich habe eine PHP Datei in der ich an einer Stelle einen Button habe, der mit onClick eine JavaScript Funktion aufruft.
HTML:
input type="button" name="schreiben" value="+" onclick="createInput()">
wenn man auf den Button clickt, wird die die JavaScript Funktion aufgerufen die sich in der PHP Datei befindet.
Code:
<script type="text/javascript">
function createInput() {
<?php
$sql="SELECT * FROM behaelter_typ WHERE status = 1 ORDER BY standard DESC, bebezeichnung";
$res=odbc_exec($dbcon,$sql);
?>
var zahl = document.FORMULAR.kontrollfeld.value;
var kd_check = document.FORMULAR.kd_check.value;
if(zahl=="") {
zahl=1;
}
var TD1textfeld1 = document.createElement('input');
TD1textfeld1.type = 'text';
TD1textfeld1.name = 'we_anzahlbehaelter[' + zahl + ']';
TD1textfeld1.size = '5';
TD1textfeld1.maxLength = '3';
var br = document.createElement('br');
var selectFeld = document.createElement('select');
selectFeld.name = 'behaeltertyp[' + zahl + ']';
<?php
if($anzahl_kd > 0) {
while(odbc_fetch_into($res_kd,$data_kd)) {
?>
var optionFeld = document.createElement('option');
var selectWert = selectFeld.appendChild(optionFeld);
selectWert.text = "<?php echo $data_kd[2];?>" + ", " + "<?php echo $data_kd[1];?>";
selectWert.value = "<?php echo $data_kd[0];?>";
<?php
}
?>
var optionFeld = document.createElement('option');
var selectWert = selectFeld.appendChild(optionFeld);
selectWert.text = "------------------------------------------------------------";
selectWert.value = "";
<?php
}
$z1 = 1;
while (odbc_fetch_into($res,$data_sel)) {
if(($z1 > 1) && ($trennlinie != $data_sel[17])) {
?>
var optionFeld = document.createElement('option');
var selectWert = selectFeld.appendChild(optionFeld);
selectWert.text = "------------------------------------------------------------";
selectWert.value = "";
<?php
}
?>
var optionFeld = document.createElement('option');
var selectWert = selectFeld.appendChild(optionFeld);
selectWert.text = "<?php echo $data_sel[5];?>" + ", " + "<?php echo $data_sel[4];?>";
selectWert.value = "<?php echo $data_sel[0];?>";
<?php
$trennlinie = $data_sel[17];
$z1++;
}
$sql="SELECT * FROM ladeeinheiten";
$res=odbc_exec($dbcon,$sql);
?>
var selectFeldLE = document.createElement('select');
selectFeldLE.name = 'ladeeinheit[' + zahl + ']';
<?php
while (odbc_fetch_into($res,$data_le)) {
if($_SESSION['language']=="deutsch") {
$le_anz=$data_le[2];
} elseif($_SESSION['language']=="polnisch") {
$le_anz=$data_le[3];
}
?>
var optionFeldLE = document.createElement('option');
var selectWertLE = selectFeldLE.appendChild(optionFeldLE);
selectWertLE.text = "<?php echo $le_anz;?>";
selectWertLE.value = "<?php echo $data_le[0];?>";
<?php
}
?>
var out = document.getElementById("hs");
out.appendChild(TD1textfeld1);
out.appendChild(selectFeldLE);
out.appendChild(selectFeld);
out.appendChild(br);
zahl++;
document.FORMULAR.kontrollfeld.value = zahl;
}
</script>
Diese JavaScript Funktion bewirkt, dass bei jedem Click im Formular ein Inputfeld und 2 Selectfelder erzeugt werden.
Der Inhalt der Selectfelder kommt dabei aus einer Tabelle der Datenbank.
Soweit funktioniert auch alles einwandfrei.
Der Inhalt der Selectfelder zeigt dann alle verfügbaren Behältertypen an. Nun möchte ich aber die Anzahl der Behältertypen einschränken auf die, die dem Kunden zugeordnet sind, weil die Liste sonst sehr lang ist.
Hierzu habe ich am Anfang der JavaScript Funktion mit
Code:
var kd_check = document.FORMULAR.kd_check.value;
ein verstecktes Feld ausgelesen und in die JavaScript Variable kd_check gepackt. Diese Variable habe ich dann mit alert(kd_check) mir anzeigen lassen und sie war korrekt gefüllt. Bis hierhin also alles ok.
Mein Problem ist nun, dass ich nicht weis wie ich diese JS Variable in die SQL Abfrage immerhalb der JS Funktion einbauen kann. Probiert hatte ich es wie oben beschrieben ja mit.
PHP:
$sql_kd = "SELECT Behaelter_Typ.benr, Behaelter_Typ.beindex, Behaelter_Typ.bebezeichnung, behaelter_typ_kunde.kunde
FROM Behaelter_Typ INNER JOIN behaelter_typ_kunde ON Behaelter_Typ.benr = behaelter_typ_kunde.behaelter_nr
WHERE behaelter_typ_kunde.kunde = ' + kd_check + ' ORDER BY Behaelter_Typ.bebezeichnung";
Die JS Funktion läuft auch durch aber die Anzeige im Selectfeld zeigt weiterhin alle Behältertypen an und nicht die eingeschränkte Auswahl.
Meine Frage ist also, wie bekomme ich die Variable kdckeck in die SQL Abfrage?
Gruß
didi01