2017-01-30 8 views
0

Hey there :)テキストを作成するときに、ユーザーが配列からランダムな値をフェッチし、テキストエリアにリフレッシュしないボタンをクリックすると、関数を作成しようとしています。私の現在の問題は、一度ページが読み込まれると、onclickを使ってphpとjsの配列からランダムな値を取得しますが、ボタンをクリックすると新しい値が得られません。テキストボックスの配列からランダム値を追加するOnClickボタン

私はあまりJSではありません私はPHPといくつかのajax/jqueryリフレッシュコールを使用します。ここに私の実際の機能とコード:

function randommacro(){ 
$randomword = array(1, 2, 3, 4, 5); 
//$randomword = file('macro/randomword.txt'); 


shuffle($randomword); 

$randomword = $randomword[0]; 
return $randomword; 
} 


<script language="javascript" type="text/javascript"> 
function addtext(text) { 
document.myform.message.value += text; 
} 
</script> 

<button class="btn btn-primary" onclick="addtext('<?php echo htmlspecialchars(randommacro()); ?>'); return false">Random Macro</button> 
+0

私は、これは便利かもしれない知っているが、私は両方をミックスする方法についてはよく分からない:$( "#のReadtokを").click(function(){//ここでは、tはReadTokの小文字です $("#tokentype ")load( '../ process/read_token_type.php'); }); – btc4cash

+1

あなたはaddtext関数を提供してください。 –

+0

申し訳ありません。ただputted – btc4cash

答えて

0

別の変数にそれを入れてみてください。ここで

<html> 
 
<body> 
 
    <script language="javascript" type="text/javascript"> 
 
    function addtext() { 
 
     $randomword = ["Name","Think","Person","Apple","Orange","bananna"]; 
 
     document.myform.message.value += $randomword[getRandomInt(0,5)]; 
 
    } 
 

 
    function getRandomInt(min, max) { 
 
     return Math.floor(Math.random() * (max - min)) + min; 
 
    } 
 
    </script> 
 
    <form name="myform"> 
 
    <textarea name="message"> 
 
     
 
    </textarea> 
 
    <button type="button" onclick="addtext();">Random Macro</button> 
 
    </form> 
 
</body> 
 
</html>

PHPとJavascriptのバージョンである:

<html> 
<body> 
    <?php 
    // Create your array using PHP 
    $RandomTextArray = array("Name","Think","Person","Apple","Orange","bananna"); 
    ?> 
    <script language="javascript" type="text/javascript"> 
    function addtext() { 
     // Create the Javascript version of your PHP array 
     $randomword = <?php echo json_encode($RandomTextArray); ?>; 

     // Add a new word to the textarea value 
     document.myform.message.value += $randomword[getRandomInt(0,<?php echo sizeof($RandomTextArray) ?>)]; 
    } 

    function getRandomInt(min, max) { 
     // Returns a random integer between your min and max values (aka: 0 and size of array) 
     return Math.floor(Math.random() * (max - min)) + min; 
    } 
    </script> 
    <form name="myform"> 
    <textarea name="message"></textarea> 
    <button type="button" onclick="addtext();">Random Macro</button> 
    </form> 
</body> 
</html> 
+0

非常にいい、まさに私が探していたもの!スクリプトの前に$ randomを設定できますか? – btc4cash

0

これはJavaScriptを使用して、配列からランダムな値を取得できるようになります

$random = $randomword[0] 
return $random 
+0

ナーそれは問題ではない、ちょうど試しました!実際には、私のテキストエリアにランダムな単語を取得する、PHP関数を呼び出すonclickします。毎回新しい単語!現在のコードは、関数の結果をエコーし​​た後、onclickは再読み込みまでテキストエリアにこのユニークな同じ値を入れます。 – btc4cash

+0

もう一つの変数は問題を解決しません。ランダムな配列インデックスを取得するには、ランダム関数を使用する必要があります。ハードに0にコード化されていません。 –

関連する問題