2016-11-18 4 views
0

私はクリック時に関数内のパラメータをスクリプトタグに渡そうとしていますが、btwはグローバル$結果を使用しません。私はパラメータからそれを使いたいだけです。 HERESに私のコード:phpファイルとタグからスクリプトタグにパラメータを渡そうとしています

<?php 
    $results = [person1:{}] // a bunch of different people in array 
    while($result in $results) //pseudo code to get each person in results 
<div> 
    <input type="button" value="Submit"  onclick="changeConfirmed($result)"> 
</form>'; 
echo '</div>'; 
?> 

<script> 
    function changeConfirmed(val){ 
    $maj=val['major']; 
    alert("Your major is: " + major); 
    } 
</script> 
+0

'$ result'は配列ですか? –

+0

はいそれは配列です –

+0

console.log(val)を追加してください。 'changeConfirmed()'の内部に出力して出力します。 –

答えて

0

あなたのPHP変数はサーバのみに住んでみてください。これらは、クライアント上のJavaScript変数とは完全に別です。サーバーからクライアントに値を渡す唯一のメカニズムは、Webページの内容(またはAJAXを介して特別に要求された舞台裏のWebコンテンツを通じて)です。 ところで、この配列をJSONに変換し、この文字列を関数に渡すことができます。 チェックこの方法:

<input type="button" value="Submit" onclick="changeConfirmed(json_encode($result))"> 
+0

ありがとう、それでも私にとってはうまくいかない。何らかの理由で、私はパラメータを持っていても、パラメータを呼び出さなくても関数を完全に破壊します。 –

+0

@BkRazor何を言っているのですか(申し訳ありませんが、私は分かりませんでした) –

+0

私は十分な情報を与えてくれませんでした。別の投稿を作成しましたが、私もこの1つを更新します –

0

あなたの「アレイ」であると私は質問から集めることができるものに基づいて、「モックアップ」$結果配列が

...の簡単なフォームを持っていることができるもの知らず
$result = [ 'major' => 'General' ]; 

と形式に簡略化された形式のコード...

<form> 
    <input type="button" value="Submit" onclick=changeConfirmed('<?= json_encode($result); ?>')> 
</form> 

が続いてjQueryのもの(と私はGoogleだけを精練し、事の多くをしようとした後、作業何かを得るために死に、これを破りましたそれで最適な方法ではないかもしれません)

<script> 
    function changeConfirmed(val) { 
     var obj = $.parseJSON(val); 
     console.log(val); 
     var major = obj.major; 
     alert("Your major is: " + major); 
    } 
</script> 

「あなたのメジャーは一般的です」という警告が表示されます。

しかし、私はあなたが数字のように各入力行を一意に識別する何かを使用していることを集めています。

私があなたが何をしているのか分からないなら、少なくとも私は別の小さなトリックを学びました。 :)

+0

これはあなたのもの私はこの作業を見ることができますが、この入力はすでに一重引用符で囲まれたエコー関数内にあります。 –

+0

実際のコードを入力すれば、私の答えを更新できます。 – TimBrownlaw

関連する問題