problem bei javascript mit frames
Achim
- javascript
Hallo,
der folgende Code funktioniert eigentlich bis auf eine Sache einwandfrei und die finde ich nicht.
Wenn in der Tabelle (iframe) (mit den checkboxen) meherer artikel angezeigt werden, so kann ich vom (header aus )php-seite mit dem javascript-functions) alle arrtikel auswählen oder nur einen usw..
Wenn aber nur ein artikel angezeigt wird gibt es probleme
der submit wird nicht ausgeführt.
Es sieht so aus als ob lenght keine anzahl liefert
Wie gesagt, aber nur wenn es ein artikel und nicht meherer sind die im iframe aufgelistet werden.
Hier der code aus dem itemsheader
<script language="JavaScript" type="text/javascript" >
<!--
function selectitem() {
var checkzahl =0;
for (var i=0;i<window.frames['custitems'].document.itemsformular.checkb.length;i++) {
alert("test2");
if(window.frames['custitems'].document.itemsformular.checkb[i].checked == true)
checkzahl = checkzahl + 1;
if (checkzahl > 1)
alert("Bitte nur einen Artikel auswählen");
if (checkzahl > 1)
break;
}
if (checkzahl == 1)
for (var i=0;i<window.frames['custitems'].document.itemsformular.checkb.length;i++) {
if(window.frames['custitems'].document.itemsformular.checkb[i].checked == true){
orderid = window.frames['custitems'].document.itemsformular.checkb[i].value;
CostumerIDs = window.frames['custitems'].document.itemsformular.ncustid[i].value;
zielstr1 = "edit_item.php?nCostumerID="+ CostumerIDs +"&nOrderID="+ orderid;
zielstr2 = "cust_itemsheader.php?CostumerID="+ CostumerIDs;
alert(zielstr1);
alert(checkzahl);
//break;
parent.heading.location.href=zielstr1;
parent.text.location.href=zielstr2;
}
}
}
function selectall(){
if (document.selectallitems.checkall.checked == true){
for (var i=0;i<window.frames['custitems'].document.itemsformular.checkb.length;i++) {
if(window.frames['custitems'].document.itemsformular.checkb[i].checked == true){
}else{ if(window.frames['custitems'].document.itemsformular.checkb[i].checked == false)
window.frames['custitems'].document.itemsformular.checkb[i].checked = true;
alert("alle ausgewählt");
alert(window.frames['custitems'].document.itemsformular.checkb.length );
}
}
}else{
for (var i=0;i<window.frames['custitems'].document.itemsformular.checkb.length;i++) {
if(window.frames['custitems'].document.itemsformular.checkb[i].checked == true){
window.frames['custitems'].document.itemsformular.checkb[i].checked = false;
}else{ if(window.frames['custitems'].document.itemsformular.checkb[i].checked == false)
alert("testausgabe");
}
}
}
}
<form action="<?echo $PHP_SELF;?>" method="post" name="selectallitems" style="display:inline;">
<tr><td>
<table width="900" cellpadding="0" cellspacing="0" border="0">
<tr >
<td width="29" rowspan="3" class="table_header_box" valign="middle">
<input type="checkbox" name="checkall" value="checkbox" class="select_box_small" onClick="selectall()" >
</td>
.
.
.
bla
</form>
<tr><td ><table border="0" cellpadding="0" cellspacing="0"><tr><td>
<iframe src="cust_items.php?CostumerID=<? echo $_GET['CostumerID'];?>&String=<? echo $_GET['String']; ?>" name="custitems" id="custitems" width="918" marginwidth="0" height="230" marginheight="0" align="left" scrolling="auto" frameborder="0"></iframe>
</td></tr>
und hier der codeausschnitt aus der itemsseite die im iframe aufgerufen wird
<form action="test" name="itemsformular" style="display:inline;">
<table width="900" cellspacing="0" cellpadding="0" border="0">
<?php
if (!empty($_GET['CostumerID']) || !empty($_GET['String'])){
while($res_1->fetchInto($row_1,DB_FETCHMODE_ASSOC) === DB_OK){
?>
<tr >
<td width="28" rowspan="3" class="table_data_left"><div align="center">
<input type="checkbox" name="checkb" value="<? echo $row_1['id']; ?>" class="select_box_small" >
</div></td>
<input type="hidden" name="ncustid" value="<? echo $row_1['costumerid']; ?>">
<td width="24" class="table_data_top" ><div align="center">1</div></td>
.
.
.
bla
</form>
hoffe e war nicht zuviel code
Gruss und danke schonmal
Achim
hi,
Es sieht so aus als ob lenght keine anzahl liefert
klingt doch auch recht logisch, oder?
wenn es nur ein element mit dem namen gibt, sieht JS wohl wenig sinn darin, dafür eine collection mit index-basiertem zugriff zu erstellen.
also versuche doch mal, vorher _abzuprüfen_, ob es nur ein oder mehrere dieser elemente gibt.
gruß,
wahsaga
Hallo,
das geht soweit
nur erhalte ich aus dem <input type="hidden" name="ncustid" value="<? echo $row_1['costumerid']; ?>">
mit window.frames['custitems'].document.itemsformular.ncustid.value
keinen wert
dagegen vom
input type="checkbox" name="checkb" value="<? echo $row_1['id']; ?>" class="select_box_small" >
erhalte ich mit
window.frames['custitems'].document.itemsformular.checkb.value
einen wert
warum?
hat das was mit dem hidden-feld zu tun?
Gruss Achim
Hallo,
sorry war mein fehler
tatsächlich war value beim hidden-feld leer
Gruss Achim