2012-04-25 21 views
0

私はHTMLでの選択オプションから値を取得しているこのJavaScript関数があります。今JavaScript変数をPHP変数で取得しますか?

<script type="text/javascript"> 

function showUser(str) { 
if (str=="") { 
    document.getElementById("txtHint").innerHTML=""; 
    return; 
    } 
if (window.XMLHttpRequest) {// code for IE7+, Firefox, Chrome, Opera, Safari 
    xmlhttp=new XMLHttpRequest(); 
    } 
else {// code for IE6, IE5 
    xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); 
    } 
xmlhttp.onreadystatechange=function() { 
    if (xmlhttp.readyState==4 && xmlhttp.status==200) { 
    var str=xmlhttp.responseText; 
    var splitstr=str.split('||'); 

    document.getElementById("txtHint").innerHTML=splitstr[0]; 
    document.getElementById("txtval").innerHTML=splitstr[1]; 
    } 
    } 
xmlhttp.open("GET","getdetails.php?q="+str,true); 
xmlhttp.send(); 
} 

</script> 

を、strは、私は、その値を取得し、PHPの変数に入れたいJavaScript変数です。

$grade = "<script language=javascript>document.write(str);</script>"; 
echo $grade; 

これを実行するための正しい方法は何ですか?A:私はこれを使用していますが、それは動作していない

+0

あなたはgetdetails.phpファイルにstrの値を格納していますか? – gopi1410

+0

[参考:私のJavascriptのPHPコードはなぜ機能しないのですか?](http://stackoverflow.com/questions/13840429/reference-why-does-the-php-code-in-my-javascript-うまくいかない) – Quentin

答えて

0

PHPはWebサーバー上で実行されるため、ページが読み込まれたときにのみ実行されます。したがって、上記のステートメントは、ページロード後に呼び出される関数内で実行されるため、機能しません。

あなたが望むものを実現するには、ajaxコールを使用してstrをPHPファイルに送信し、それをセッション変数に格納します。 &あなたが変数を必要とするときはいつでも、セッション値を取り出す別のajax関数を呼び出します。

0

jQueryを使用してAJAX呼び出しを処理できます。 この行をHTMLページに含めるようにしてください。

JavaScriptを使用してPHPを呼び出し、strデータを送信します。

function uploaddata(str) { 
    if (str=="") { 
     document.getElementById("txtHint").innerHTML=""; 
     return; 
     } 

      var fd = new FormData(); 
      fd.append('data1', str); 

      try { 
      $.ajax({ 
      url: 'dosomething.php', 
      data:fd, 
      processData: false, 
      contentType: false, 
      type: 'POST',  
      success: function(data){ 
       var response = $.parseJSON(data); 
       if (response.code !== '0'){ 
       alert(response.description); 
       } 
       else { 
       alert(response.description); 
       }; 
       }, 
      error: function(jqXHR, error, errorThrown) { 
       alert(jqXHR.responseText);} 
      }); 
      } 
      catch (ex) { 

      } 
    } 

サーバ側では、dosomething.phpが必要なプロセスを作成します。

<?php 

// get your data at server side 
    str = $_POST['data1']; 

// do processing 

// return answer to browser 
    $ans = ['code' => '0', 'description' => 'Everything are ok']; 
    echo json_encode($ans); 
    return; 
?> 

JavaScriptで成功部分が有効になり、コードと説明を使用してロジックを構築できます。

関連する問題