2012-04-03 10 views
0

無効な割り当ての左手側が表示されています。無効な割り当ての左手側

jscolor http://jscolor.comを使用して、Mapbender http://mapbender.orgでポリゴンの描画の色を定義することです。

私がしていること:ポリゴンをクリックして選択し、オプションダイアログ(別ウィンドウ)を開き、色を含むいくつかのオプションがあります。

MyCode:

 if (isTransactional) {str += "\t\t<tr>\n"; 
     var options = ["insert", "update", "delete", "abort", "pick"]; 
     for (var i = 0 ; i < options.length ; i++) { 
      var onClickText = "this.disabled=true;var result = window.opener.formCorrect(document, '"+featureTypeElementFormId+"');"; 
      onClickText += "if (result.isCorrect) {"; 
      onClickText +=  "window.opener.dbGeom('"+options[i]+"', "+memberIndex+"); "; 
//    onClickText +=  "window.close();"; 
       onClickText += "}"; 
      onClickText += "else {"; 
      onClickText +=  "alert(result.errorMessage);this.disabled=false;" 
      onClickText += "}"; 
if (options[i] == "insert" && hasGeometryColumn && (!fid || showSaveButtonForExistingGeometries)) { 
       str += "\t\t\t<td><input type='button' name='saveButton' value='"+msgObj.buttonLabelSaveGeometry+"' onclick=\""+onClickText+"\" /></td>\n"; 
      } 
if (!featureTypeMismatch && fid) { 
       if (options[i] == "update" && hasGeometryColumn) { 
        str += "\t\t\t<td><input type='button' name='updateButton' value='"+msgObj.buttonLabelUpdateGeometry+"' onclick=\""+onClickText+"\"/></td>\n"; 
       } 
if (options[i] == "delete"){ 
        var deleteOnClickText = "var deltrans = confirm('"+msgObj.messageConfirmDeleteGeomFromDb+"');"; 
        deleteOnClickText += "if (deltrans){"; 
        deleteOnClickText += onClickText + "}"; 
        str += "\t\t\t<td><input type='button' name='deleteButton' value='"+msgObj.buttonLabelDeleteGeometry+"' onclick=\""+deleteOnClickText+"\"/></td>\n"; 
       }} 
if (options[i] == "abort") { 
       str += "\t\t\t<td><input type='button' name='abortButton' value='"+msgObj.buttonLabelAbort+"' onclick=\"window.close();\" /></td>\n"; 
      } 
if (options[i] == "pick") { 
       var color; 
       str += "<td><input class='color' name='color' id='cPick' onchange="+color+"></td>"; 
       str += "<td><input type='text' id='text' value="+color+"></td>"; 
       //color = document.getElementById('cPick').value; 
       //var color2 = color; 
       //alert(color2); 
      } 
     }str += "\t\t</tr>\n";}str += "\t</table>\n";str += "<input type='hidden' id='fid' value='"+fid+"'>"; 
//str += "<input type='text' name='mb_wfs_conf'>"; 


    str += "</form>\n";}return str;} 

アプリケーション:

マップを表示し、その上に描画するMapbenderアプリケーションです。点、線、ポリゴンをマージして分割することもできます。 変更するために描画したポリゴンを選択することもできます。

使用: PHPやJavaScript、HTML、CSS、Mapbender、jQueryの、Geoserver、PostgreSQLの、WMS、WFS-T

+0

'color = document.getElementById( 'cPick')で達成したいことは?value;'? 'onchange'属性の値はどうすればよいでしょうか? –

+0

"color"フィールドが返す値を取得したいと思います。 – JoelM

+0

スニペットに 'color'フィールドがありません。すべての人があなたが供給しているものであることを忘れないでください。コンテキストが必要な場合は、コンテキストを提供します。あなたのページへのリンクが最適です。より多くのコードで十分でしょう。 –

答えて

2

私は、それはそのためであるかなり確信しています。

str += "<td><input class='color' name='color' id='cPick' onchange=" + color = document.getElementById('cPick').value; + "></td>"; 

はちょうど

var color = document.getElementById('cPick').value; 

str += "<td><input class='color' name='color' id='cPick' onchange=" + color + "></td>"; 

編集を行いますいけないあなたは色が関数ではないので、やろうとしているか知っているが、それは誤りをあなたのGETの表示を停止する必要があります。

+0

ええ、document.getElementById( 'cPick')はnullですが、フィールドのデフォルト値は#FFFFFF(白)であるという新しいエラーが発生しました。 – JoelM

+0

あなたは何をしようとしているのか理解できるように、フィドルを作成してそこにコードを入れてください(http://jsfiddle.net)。 – mpm

+0

このコードを正しく実行するにはPHPが必要です。これも単一のiframeのコードだけです。 – JoelM

1

ローカル変数を使用するか、color = ...ステートメントをかっこで囲む必要があります。これは構文上のエラーを修正しますが、有効なonchangeハンドラを提供しません。

関連する問題