2012-03-05 4 views
2

私はJavaScriptを一度も使用しませんでしたが、私は自分のプロジェクトに必要です。 javascript関数の中でabc []と呼ばれるPHP配列を使いたいと思います。現在、JavaScriptコードを作業PHPの配列を使用するためにjavascriptオブジェクトの名前を変更

は次のとおりです。

if(document.form1.checkbox[i].checked) 

私はこれが原因で[] PHPの配列名の、動作しない代わりに、チェックボックス

のABC []配列を使用したいです[i]はjavascriptのコードのでミックス...しかし、それは私が達成したいものを示しています

if(document.form1.abc[][i].checked) 

はそれがJavaScriptでxxxは変数としてABC []定義したり、他の方法を使用することが可能ですこれを稼働させるには?

if(document.form1.xxx[i].checked) 
where xxx=abc[] 
+0

第一のものは、クライアント側とサーバ側との間の差です。クライアントとサーバーは自律的なエンティティです。一般的に、サーバーは要求を受け取った後、処理するクライアントに文字列を送信して終了します。第2の事document.form1.checkboxはドキュメントからdom要素(オブジェクト)を取得しています。だから、各チェックボックスの名前を文字列でクライアントに出力することができますが、良い提案がなされる前にあなたの目標が何であるかを知る必要があると思います。 – scrappedcola

答えて

3

あなたは常にこのよう配列としてオブジェクトのプロパティにアクセスすることができます:あなたが理解する必要があり

document.forms['form1'].elements['abc[]'][i].checked 
+0

私はあなたの答えが好きで、それは仕事をするだろうと思う..しかし、私はそれを働かせるために成功しなかった!ここに私の元のコードです http://jsbin.com/ejoreg/3/edit#source あなたの提案にあるコードは以下の通りです: http://jsbin.com/efimil/edit#javascript,html –

+0

'var length = item.forms ['form1']。要素['abc []'] [i] .length; ' - {' i '}を削除すると、期待どおりに動作します –

+0

yep!どうもありがとう! –

0
<?php 

$abc = array(
... 
); 

?> 

<html> 
<head> 
<script type="text/javascript"> 
    var checkbox=eval(<?= json_encode($abc) ?>); 
    ... 
</script> 
+1

メモのカップル:1)eval()を使用することは貧弱な方法であると考えられています.jsonをデコードするライブラリが多数あります(例:http://api.jquery.com/jQuery.parseJSON/)。 2)PHPは一般的にサーバー側の言語であり、JSは一般的にクライアント側であり、決して2人が会うことはありません。上に示したように、注入が可能である一方で、AJAXまたは同様のJS構造を介してアクセスされるXML/JSON出力を持つPHPサービスを作成することが望ましいでしょう。注入は醜いものであり、コードクリープを起こしやすい。 –

+1

私はあなたがそれを評価する必要があるとも信じていませんが、状況によってはかもしれません。また(その内容に応じて) 'implode'もうまくいくかもしれません。 'var foo = [<?= implode( '、'、$ abc); ?>]; 'または' var foo = ['<?= implode( "'、 '"、$ abc); ?> '];' –

+1

Shivers ..... https://github.com/douglascrockford/JSON-js – locrizak

関連する問題