2016-11-29 9 views
0

これはAJAXの初心者です。ですから、私は在庫管理システムをphpmyadminとwampでビルドしています。登録/ログインシステムは素晴らしいです。ユーザーがログインすると、現在のユーザーがアイテムをチェックインまたはチェックアウトすることを可能にする各インベントリアイテムの横にあるボタンとともに、すべてのインベントリのテーブルが画面上に生成されます。ボタンはすべて生成され、私はそれらにPHPを使用して一意のIDを与え、コードはこのように見えます。PHPで在庫を更新するためのボタンを生成する

<table class = "table"> 
    <thead> 
     <tr> 
      <td><center><strong>Item Id</strong></center> </td> 
      <td><center><strong>Item Description</strong></center> </td> 
      <td><center><strong>Item Type</strong> </center></td> 
      <td><center><strong>Availability</strong></center></td> 
      <td><center><strong>Name</strong></center></td> 
      <td><center><strong>Check in/out button</strong></center></td> 
     </tr> 
    </thead> 
    <tbody> 
    <?php 
     mysql_select_db('inventory management system'); 
     $query="SELECT * FROM inventory"; 
     $results = mysql_query($query); 
     $a = 0; 

     while($row = mysql_fetch_array($results)) { 
      $a++; 
      echo '<script type = "text/javascript">c++;</script>' 
     ?> 
      <tr> 
       <td><center><?php echo $row['item_id']?></center></td> 
       <td><center><?php echo $row['item_desc']?></center></td> 
       <td><center><?php echo $row['item_type']?></center></td> 
       <td><center><?php echo $row['availability_status']?></center></td> 
       <td><center><?php echo $row['name']?></center></td> 
       <td><center><?php 
       if(is_null($row['name'])){ 
//this is what is generating each button with a unique id     echo '<input class="btn btn-default" type="submit" value="Check Out" id = "<?php echo $a; ?>" onclick="<?php ?>">'; 
       }else if(!is_null($row['name'])){ 
        echo '<input class="btn btn-default" type="submit" value="Check In" id = "<?php echo $a; ?>" onclick="updateinventory()">'; 

       } 


       ?></center></td> 
      </tr> 

     <?php 
     } 
     ?> 
     </tbody> 
     </table> 

は今、ユーザーがボタンをクリックすると、それは誰もアイテムは、他のユーザーがログインして中のアイテムをチェックアウトすることができ、その方法をチェックアウトしていないことを意味するnullに名前フィールドを設定するためのデータベースを更新します在庫。私は本当に苦労していますし、何らかの理由で私が働くことができなかったクリックメソッドから、AjaxやPHPでたくさんのことを試してきました...そして、私は一見単純な機能を働かせません...ありがとう可能な限り助けてください。

+0

あなたは、PHPの初心者だと言っています。 ** mysql_ *関数を使わないよう強く**お願いします。 2年以上前から廃止されています。私はあなたのアプリケーションがSQLインジェクションに広く開かれているなら、驚くことはありません。つまり、ユーザーはすべてを非常に簡単に(意図的にまたは間違って)破ることができます。あなたのデータベースを完全に消去することは言うまでもありません。 Prepared Statementsを使用しているMySQLiまたはPDOは、これらの日に進む方法です。 – icecub

+0

@icecub yeaはあなたの目に見えるよりもずっと多くのコードを作成します。私はSQLインジェクションが複数のものになるのを防ぐためにすべての措置を取ってきました。私はトリム、ストリップタグ、およびPHPのhtmlspecialcharsメソッドを使用して、可能なSQLインジェクションを処理しました。正直、ちょうど私が数年前にphpとsqlを教えていたものです。しかし、私は最近までそれに夢中になったことはありませんでしたので、私はすべての新しいものに慣れています:3 – lionetti12345

+0

それらはあなたを完全に保護しません。したがって、彼らはphp7以降の 'mysql_ *'関数を削除したのです。だから、あなたが持っているものを十分に快適に感じても、あなたがサーバーを更新するだけでなく、ただちに機能しなくなるので、コード全体を書き直す必要があります。開始からちょうど良いこともあります:) – icecub

答えて

0

あなたはまだPHPの開始タグが上記の書かれているので、同様にIFからPHPタグを削除

echo "<input class='btn btn-default' type='submit' value='Check In' 
id ='$a' onclick='updateinventory()'>"; 

echo '<input class="btn btn-default" type="submit" value="Check In" id = 
"<?php echo $a; ?>" onclick="updateinventory()">'; 

を変更するPHPタグを開きました。

type="submit"これは直接ページを送信するので、最終的にはajaxを呼び出すjavascript関数を呼び出せるように、おそらくそれをbuttonにする必要があります。

+0

ただ好奇心から外れます:変数の周りの一重引用符で問題を引き起こしませんか?私はメインの文字列が二重引用符で囲まれていることを知っていますので、これは私にそれについての疑問をもたらしました – icecub

+0

それは素晴らしいスタートです。私の構文は完全にオフです。私はこれらの言語でプログラミングするのに慣れていないので、そのヒントに感謝します。 – lionetti12345

+0

@icecub私はこのシナリオで作業しますが、このように "" "$ a"を実行することもできます。 'そして '' $ name = "danyal"の例があります。 echo ""; ' –

関連する問題