2016-05-03 22 views
0

私はJavaScriptの開発者ではないと言って始めたいのですが、これは初めてです。PHP変数のjavascriptの値が正しくありません

私はidというセッション値を持っていますが、これは長いです(例:76561198237133252)。これをメソッドの引数として渡しています。問題は、関数が実際に実行されたときにidが正しくないことです。

JS:

function sendMessage(id) 
{ 
    var message = $("#message").val(); 
    if (message) 
    { 
     $.ajax(
     { 
      url: 'addChatMessage.php', 
      type: 'POST', 
      data: '&id=' + id+ '&message=' + message, 
      dataType: 'text', 
      success: function (data) 
      { 
       $('#chatMessages').load(document.URL + ' #chatMessages'); 
       document.getElementById('message').value = ''; 
       $('#chatScrollable').animate({scrollTop:$(document).height()}, 1000); 

       window.alert("Id: " + id); 
      } 
     }); 
    } 
} 

HTML:

<div class="chat-input"> 
    <div class="input-group"> 
     <input type="text" id="message" class="form-control" placeholder="Message..." required> 
     <!-- <input type="hidden" id="id" value="<?php //echo $_SESSION['id']; ?>"> --> 
      <span class="input-group-btn"> 
       <button class="btn btn-default" id="msgButton" type="button" onclick="sendMessage(<?php echo $_SESSION['id']; ?>);">Send</button> 
      </span> 
     </div> 
    </div> 

すべてのヘルプは高く評価されます。

+0

関連ファイルを表示してください。 –

+0

あなたは 'sendMessage()'を呼び出す場所からhtmlを表示してください。 – devpro

+0

セッションが正常に動作している場合、@ JamesFreund devpro – bwfcwalshy

答えて

-1

Javascriptは、この1つの理由から非常に大きく、さらに悪化しています。文字列と数字を自動変換して、不可能な文を理解します。 IDは数字なので、文字列に正しく変換されない可能性があります。この問題を解決するには、idの.toString()を使用してください。

+1

これはダムに聞こえるかもしれませんが、どこでこれを使用しますか? – bwfcwalshy

+1

idはクエリ文字列の一部として送信されるため、すでに文字列です。 –

+0

彼が持っている問題は、 '$ _SESSION ['id']'を 'onclick =" sendMessage() 'に代入するときです。 – Barmar

0

PHPでjson_encode()を使用して、PHPの値を対応するJavascriptリテラルに変換します。同じデータ型を保持するために適切にエンコードします(例えば、文字列の前後に引用符を付けるなど)。

<button class="btn btn-default" id="msgButton" type="button" onclick="sendMessage(<?php echo htmlentities(json_encode($_SESSION['id'])); ?>);">Send</button> 

また、エンティティに、文字列の前後に引用符を変換するhtmlentities()を使用する必要があります。それ以外の場合、見積はonclick=の後の見積もりと一致し、属性を終了します。

関連する問題