2017-05-08 29 views
-1

ステータスを0から1に更新する機能を記述しましたが、ボタンをクリックするとすべての行のステータスが更新されます。私は何が悪いのか分からない。Onclick関数が正しく機能していません

function updateStatusenable($id,$value) 
{ 
global $mysqli,$db_table_prefix; 
$stmt = $mysqli->prepare("UPDATE gb_users 
    SET status = ? 
    WHERE 
    id = ? 
    LIMIT 1 
    "); 
$stmt->bind_param("ss", $id,$value); 
$result = $stmt->execute(); 
$stmt->close(); 
return $result; 
} 

そして、私はで使用されるこの機能:私はあなたが以下のように設定したときに、あなたの結合順序が間違っていると思う

<?php 
    $value=1; 
    foreach($users as $v1) 
    { 
     echo "<tr> 
     <form action=\"admin_pending_approval_users.php\" method=\"post\"> 
     <input type=\"hidden\" name=\"enable\" value=".$v1['id']."> 
     <td>".$v1['id']."</td> 
     <td>".getAccountTypeNameById($v1['account_type'])."</td> 
     <td>".$v1['name']."</td> 
     <td>".$v1['user_name']."</td> 
     <td>".getUserGroupsNameById($v1['group'])."</td> 
     <td>Rs.".fetchUserBalance($v1['id'])."</td> 
     <td>"; 
     if($v1['status']==1) 
      { 
      echo "<button class=\"green tiny\"><span>ACTIVE</span></button>"; 
      } 
       else 
       { 
        echo "<button class=\"orange tiny\" onclick=".updateStatusenable($v1['id'],$value)." ><span>DISABLED</span></button>"; 
       } 
       echo "</td> 
       <td align='right'> 
       <a href='view_user.php?user_id=".$v1['id']."'><button class=\"small\"><img src=\"images/icons/small/white/magnifying_glass.png\"></button></a> 
       <a href='edit_user.php?user_id=".$v1['id']."'><button class=\"small\"><img src=\"images/icons/small/white/create_write.png\"></button></a> 
       </td> 
       </form> 
       </tr>"; 
        } 
+0

第同じまま。あなたはクライアント側のjavascriptハンドラからsererサイドPHP関数を呼び出すことはできません。それはどうすればいいのですか?代わりに、両方の別々のシステム間でリレーするAJAXリクエストを実装する必要があります。 – arkascha

+0

あなたの意見が分かりました。私はこれをどのように達成すべきか教えてくれますか? – Piyush4196

+0

私はすでに私の最後のコメントでそれに答えました、私はしませんでしたか? AJAXリクエストを実装する必要があります。 – arkascha

答えて

0

$stmt->bind_param("ss", $id,$value);

uはまた、あなたがクライアントからサーバにあなたの行動のための要求を送信することができます更新するために、AJAXを使用してID

前にステータスを設定して代わりに

$stmt->bind_param("ss",$value, $id);

を使用しています。

+0

よく点が付けられ、良い点。しかし、これはOPが現在直面している問題ではないので、これは質問された質問には答えません。 – arkascha

+0

それは動作しません。そのすべての行の状態を変更する – Piyush4196

+1

@arkascha真私はそれを見つけて答えとして書きました。私はちょうどこれを賞賛している必要がありますね。 –

0

私はAjaxを使いたくないので、私はいくつかの変更をしてPHPでやっています。

<?php 
        $value=1; 
        foreach($users as $v1) 
        { 
         echo "<tr> 
         <form action=\"admin_pending_approval_users.php\" method=\"post\"> 
          <input type=\"hidden\" name=\"id\" value=".$v1['id']."> 
          <td>".$v1['id']."</td> 
          <td>".getAccountTypeNameById($v1['account_type'])."</td> 
          <td>".$v1['name']."</td> 
          <td>".$v1['user_name']."</td> 
          <td>".getUserGroupsNameById($v1['group'])."</td> 
          <td>Rs.".fetchUserBalance($v1['id'])."</td> 
          <input type=\"hidden\" name=\"process\" value=\"1\" required> 
          <td>"; 
           if($v1['status']==1) 
           { 
            echo "<button class=\"green tiny\"><span>ACTIVE</span></button>"; 
           } 
           else 
           { 
            echo "<button class=\"orange tiny\" onClick=\"form.submit()\" ><span>DISABLED</span></button>"; 
           } 
           echo "</td> 

          <td align='right'> 
           <a href='view_user.php?user_id=".$v1['id']."'><button class=\"small\"><img src=\"images/icons/small/white/magnifying_glass.png\"></button></a> 
           <a href='edit_user.php?user_id=".$v1['id']."'><button class=\"small\"><img src=\"images/icons/small/white/create_write.png\"></button></a> 
          </td> 
          </form> 
         </tr>"; 
        } 

        ?> 

と同じPHPページでは、私は

if(!empty($_POST['process'])) 
{ 
$id = $_POST['id']; 
updateStatusenable($id,1); 
} 

ように、1つの機能を追加し、最後にのfuncsは無いジャスト

+0

確かに可能ですが、それは完全なページの再読み込みを意味します。非常に醜い。 – arkascha

関連する問題