2016-11-24 9 views
0

に値を更新するためのボタンを提出私はHTMLのボタンがあります。ボタンをクリックすると、それがパラメータとしてセッション$chatwithを送信するために関数を呼び出すことになって、HTML - PHP - のonclick()SQL Serverの

<input class="endthischat" name="endthischat" type="submit" 
     id="endthischat" onclick="setuserlogout()" value="End This Chat" /> 

をデータベースSQL Serverの一部の値を更新します。関数を呼び出すことで

<?php 
    function setuserlogout(){ 
     $query3 = "UPDATE users SET isActive = (?) WHERE user_email = (?)"; 
     $var3 = array("0",$chatwith); 

     if($chatwith !=""){ 
      sqlsrv_query($conn, $query3, $var3); 
      sqlsrv_close($conn); // Close the connection 
     }else{ 
      $message = "wrong answer"; 
      echo "<script type='text/javascript'>alert('$message');</script>"; 
     } 
    } 
?> 

ただし、ボタンにはない成功:

は、以下の機能を見つけてください。親切に私を助けて、あなたの時間に感謝してください。

Javascriptを:

<script type="text/javascript"> 
     function setuserlogout(){ 
      $("#endthischat").click(function(){ 
      function() {setuserlogout()}; 
      }) 
     }; 
    </script> 
+0

あなたはここにしようとしているよう – Elby

+0

PHP関数は、あなたのHTML内で直接参照することはできませんここにあなたのjavascriptのコードを追加します - あなたは – RamRaider

+0

Javascriptを追加PHP関数サーバーサイドを開始する(アヤックス最も可能性が高い)JavaScript関数を呼び出す必要があります。まあ、私の問題は私のjavascriptにあると思いますか? : – anakpanti

答えて

0

のテストされていない例リクエストを送信するためにajaxを使用する方法該当する場合は、サーバーにSQLコマンドを実行します。 reqponseで単純なメッセージをajaxコールバック関数に送り返します。

<?php 
    if(isset($_POST['chatwith'])){ 

     $chatwith = $_POST['chatwith']; 


     if(!empty($chatwith)){ 
      $sql = "UPDATE users SET isActive = ? WHERE user_email = ?"; 
      $params = array("0",$chatwith); 

      sqlsrv_query($conn, $sql, $params); 
      sqlsrv_close($conn); 

      $message='ok'; 
     } else { 
      $message = "wrong answer"; 
     } 

     /* send message to ajax callback function */ 
     exit($message); 
    } 
?> 

<!doctype html> 
<html> 
    <head> 
     <title>simple ajax example</title> 
     <script type='text/javascript' charset='utf-8'> 

      function ajax(m,u,p,c,o){ 
       /* 
        Method,Url,Params,Callback,Options 
       */ 
       var xhr=new XMLHttpRequest(); 
       xhr.onreadystatechange=function(){ 
        if(xhr.readyState==4 && xhr.status==200)c.call(this, xhr.response, o, xhr.getAllResponseHeaders()); 
       }; 

       var params=[]; 
       for(var n in p)params.push(n+'='+p[n]); 

       switch(m.toLowerCase()){ 
        case 'post': p=params.join('&'); break; 
        case 'get': u+='?'+params.join('&'); p=null; break; 
       } 

       xhr.open(m.toUpperCase(), u, true); 
       xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded'); 
       xhr.send(p); 
      } 


      function setuserlogout(){ 
       var chatwith=document.getElementById('chatwith'); 

       var method='post'; 
       var url=location.href; 
       var params={ chatwith:chatwith.value }; 
       var callback=function(r,o,h){ 
               o.output.innerHTML=r; 
              }; 
       var options={ output:document.getElementById('results') }; 

       /* send the ajax request to the same page (or other) */ 
       ajax.call(this, method, url, params,callback, options); 
      } 

     </script> 
    </head> 
    <body> 
     <input type='text' name='chatwith' id='chatwith' /> 
     <input class="endthischat" name="endthischat" type="submit" id="endthischat" onclick="setuserlogout()" value="End This Chat" /> 
     <div id='results'></div> 
    </body> 
</html> 
+0

wah、あなたは最高です。コードは完璧に機能しています。ありがとうございました。 – anakpanti

0

onclick="setuserlogout()"のJavaScriptのイベントであり、あなたは、PHPの関数を作成しています。

あなたはこのようにそれを行うことができます。

<script> 
    function setuserlogout(){ 
    <?php //start php tags and write your code here 

    ?> 
    } 
</script> 
+0

あなたが言ったように私が上に書いた関数をスクリプトに挿入しようとしましたが、残念ながらまだ動作しません。 :( – anakpanti

+0

私はあなたの関数にもいくつかの問題を見ることができます。まずパラメータをバインドせずにプレーンなクエリを書いて、それが機能しているかどうかを確認してください、つまり、バインドに問題があることを意味します –

0
<input type='text' value = <php echo $chatwith; ?> name = 'chatwith' id = 'chatwith'> 
<input class="endthischat" name="endthischat" type="submit"id="endthischat" onclick="setuserlogout()" value="End This Chat" /> 

Javascriptを

<script> 
    function setuserlogout(){ 
     var chatwith = document.getElementById(chatwith); 
     // Add ajax code here 
    } 
</script> 

あなたの機能(これは別のファイルにある考えてみましょう)

<?php 
    $chatwith = $_POST['chatwith']; 
    setuserlogout($chatwith); 
    function setuserlogout($chatwith){ 
     $query3 = "UPDATE users SET isActive = (?) WHERE user_email = (?)"; 
     $var3 = array("0",$chatwith); 

     if($chatwith !=""){ 
      sqlsrv_query($conn, $query3, $var3); 
      sqlsrv_close($conn); // Close the connection 
     }else{ 
      $message = "wrong answer"; 
      //echo "<script type='text/javascript'>alert('$message');</script>"; 
     } 
    } 
?>