KuShi: Das Objekt unterstützt diese Eigenschaft oder Methode nicht

Hi,
ich habe jetzt schon Ewigkeiten damit verbracht, eine Lösunf auf mein Problem zu finden, aber es will einfach nicht klappen und ich weiß nicht , warum.

Ich habe eine Seite, in das ein kleines iFrame geladen wird.
Von dieser Seite aus wird ein Fenster geöffnet, in dem ich ein Bild hochladen will.
Der Link zu diesem Bild soll dann in dem iFrame in ein hidden-Input geschrieben werden.

Der Upload des Bildes funktioniert prima, aber ich erhalte oben genannten Fehler in der Upload-Seite (Zeile 14, Zeichen 9).

hier die Scripts:

Upload-Seite:

<?php

include 'includes.php';

if(!isset($_FILES['datei']))
  {
    ?>

<center>
    <div style="font-size:30; font-weight:bold">Bild Hochladen</div><p>

<form action='upload.php' name='upload_form' enctype="multipart/form-data" method='post'>
    <table>
      <tr>
        <td><b>Hochzuladendes Bild:</b> (max. 1MB)</td>
      </tr>
      <tr>
        <td>
          <input type='file' name='datei' id='datei'><br>
        </td>
      </tr>
      <tr>
        <td>
          <input type='button' value='hochladen' onClick=pruefe_upload()></td>
      </tr>
    </table>

<?php
  }
  else
  {
    if(is_numeric($link = check_picture($_FILES['datei'])))
    {
      ?>

<script language='javascript'>
        error_upload(<?php echo $link ?>);
        location.href='upload.php';
      </script>

<?php
    }
    else
    {
      ?>

<script language='javascript'>
        opener.pictures_frame.getElementById('picture_numbers').value += 1;                  <- hier kommt der Fehler
        opener.pictures_frame.getElementById('next_picture').value = '<?php echo $link ?>';
      </script>

<?php
    }
  }
?>

iFrame:

<?php

include 'includes.php';

?>

<form action='pictures.php' name='pictures_form' method='post'>
<input type='hidden' name='picture_numbers' id='picture_numbers' value='0'>
<input type='hidden' name='next_picture' id='next_picture' value=''>
<?php
if(isset($_POST['picture_numbers']))
{
  for($i=-1; $i<$_POST['picture_numbers']; $i++)
  {
    echo  "<input type='hidden' name='picture".$i."' value='";

if(isset($_POST['picture'.$i]))
            echo $_POST['picture'.$i];
          else
            echo $_POST['next_picture'];

echo  "'>";
  }
}
?>
</form>

Und hier noch alle benötigten Funktionen:

(JavaScript)
function pruefe_upload()
  {
    if(!document.getElementById('datei').value)
      alert('Du musst noch ein Bild auswählen');
    else
      document.upload_form.submit();
  }

function error_upload(Fehler)
  {
    switch (Fehler)
    {
      case 1:
        alert('Du hast kein unterstütztes Bildformat hochgeladen.\n Es werden nur GIF, JPG, PNG oder SWF unterstützt.');
        break;
      case 2:
        alert('Diese Datei existiert bereits.\n Du musst dein Bild umbenennen.');
        break;
      case 3:
        alert('Dein Bild ist zu groß.\nDu darfst nur maximal 1MB hochladen');
        break;
    }
  }

(PHP)
function check_picture($datei)
{
  $dateityp = GetImageSize($datei['tmp_name']);
  if($dateityp[2] != 0)
  {
    if(!file_exists('images_tmp/'.$datei['name']))
    {
      if($datei['size'] <= 1048576)
      {
          move_uploaded_file($datei['tmp_name'], 'images_tmp/'.$datei['name']);
          return 'images_tmp/'.$datei['name'];
      }
      else
        return 3;
    }
    else
      return 2;
  }
  else
    return 1;
}

Vielen Dank im Voraus für Eure rasche Hilfe.
Ich hoffe, es ist nicht zu unübersichtlich.

  1. Okay,
    ich habe es jetzt hinbekommen.
    Ich musste die betroffene Stelle so abändern:

    <script language='javascript'>
    opener.document.pictures_frame.document.getElementById('amount').value++;
    opener.document.pictures_frame.document.getElementById('next_picture').value = '<?php echo $link ?>';
    </script>

    Das funktioniert aber nur im Internet Explorer. FireFox macht gar nix. Könnt Ihr mir einen Tipp geben, wie ich es in beiden Browsern zum Laufen bekomme?

    1. <script language='javascript'>

      Da fehlt das type Attribut.

      opener.document.pictures_frame.document.getElementById('amount').value++;
      opener.document.pictures_frame.document.getElementById('next_picture').value =

      Das funktioniert aber nur im Internet Explorer. FireFox macht gar nix. Könnt Ihr mir einen Tipp geben, wie ich es in beiden Browsern zum Laufen bekomme?

      Was sagt die Fehlerkonsole?

      Struppi.

      --
      Javascript ist toll (Perl auch!)