2012-05-02 4 views
1

チェックボックスをオンにすると、データベースにデータを動的に保存するjs/ajax/jqueryスクリプトが必要になります。 現時点でチェックボックスがオンになっているか、レコードの横に読み込まれていて、チェックされているかどうかによってデータベースの変数が変更されます。ただし、データベースに保存するために選択した後にページをリロードする必要があります。私は他のすべてを行うことができますが、私はクエリを提出し、毎回ページを更新する必要はありませんので、これにajaxを実装する方法を理解しています。どんな助けでも大歓迎です。チェックボックスのデータクリックでデータベースに動的に保存

<form name="form1aa" method="post" action="process.php?fn=<? echo $rows['first']; ?>&class=<?php echo $rows['class']; ?>&last=<?php echo $rows['last']; ?> 
&model=<?php echo $rows['model']; ?>&cas=<?php echo $rows['cases']; ?>&upid=<?php echo $id; ?>&group=1" id="form1a" > 

    <select name="type" onchange=" fill_damage (document.form1aa.type.selectedIndex); "> 
    <option value="Hardware">Hardware</option> 
    <option value="Software">Software</option> 
    </select> 
    <select name="damage"> 
    </select> 
    <input type=text name="comment" placeholder="Comments Box"> 
    <input type=text name="cost" placeholder="Cost"> 
    <input type="submit" value="Save" name="Save"> 
    </form> 

<?php 

//Job Status 
if(isset($_POST['checkbox'])){$checkbox = $_POST['checkbox']; 
if(isset($_POST['activate'])?$activate = $_POST["activate"]:$deactivate = $_POST["deactivate"]) 
$id = "('" . implode("','", $checkbox) . "');" ; 
$sql="UPDATE repairs SET status = '".(isset($activate)?'Completed':'In Progress')."' WHERE id=$id" ; 
$result = mysql_query($sql) or die(mysql_error()); 
} 
//End Job Status 

//Payment Status 
if(isset($_POST['paycheck'])){$paycheck = $_POST['paycheck']; 
if(isset($_POST['paid'])?$paid = $_POST["paid"]:$unpaid = $_POST["unpaid"]) 
$id = "('" . implode("','", $paycheck) . "');" ; 
$sql="UPDATE repairs SET paid = '".(isset($paid)?'Paid':'Unpaid')."' WHERE id=$id" ; 
$result = mysql_query($sql) or die(mysql_error()); 
} 
//End Payment Status 

//Return Status 
if(isset($_POST['retcheck'])){$retcheck = $_POST['retcheck']; 
if(isset($_POST['ret'])?$ret = $_POST["ret"]:$unret = $_POST["unret"]) 
$id = "('" . implode("','", $retcheck) . "');" ; 
$sql="UPDATE repairs SET ret = '".(isset($ret)?'Retuned':'In Office')."' WHERE id=$id" ; 
$result = mysql_query($sql) or die(mysql_error()); 
} 
//End Return Status 
$sql="SELECT * FROM $tbl_name"; 
if(isset($_POST['all'])){ 
    $sql="SELECT * FROM $tbl_name"; 
} 
if(isset($_POST['tpc'])){ 
    $sql="select * from $tbl_name WHERE class LIKE '1%'"; 
} 
if(isset($_POST['drc'])){ 
    $sql="select * from $tbl_name WHERE class LIKE 'D%'"; 
} 
if(isset($_POST['bsc'])){ 
    $sql="select * from $tbl_name WHERE class LIKE 'B%'"; 
} 

$result=mysql_query($sql); 

?> 
<form name="frmactive" method="post" action=""> 
       <input name="activate" type="submit" id="activate" value="Complete Job" /> 
       <input name="paid" type="submit" id="Payment" value="Payment Status" /> 
       <input name="ret" type="submit" id="ret" value="Returned 2 Student" /> 
       <br /> 

<a id="displayText" href="javascript:toggle();">Show Extra</a> 
<div id="toggleText" style="display: none"> 
<br /> 
       <input name="unret" type="submit" id="unret" value="In Office" /> 
       <input name="unpaid" type="submit" id="unpaid" value="Not Paid" /> 
       <input name="deactivate" type="submit" id="deactivate" value="In Progress" /></div> 

<table width="1000" border="0" cellpadding="3" cellspacing="1"> 
<thead> 
<th width="67" align="center"><strong>Start Date</strong></th> 
<th width="50" align="center"><strong>Cases</strong></th> 
<th width="34" align="center"><strong>Type</strong></th> 
<th width="120" align="center"><strong>Damage</strong></th> 
<th width="31" align="center"><strong>Comment</strong></th> 
<th width="31" align="center"><strong>Cost</strong></th> 
<th width="90" align="center"><strong>Payment Status</strong></th> 
<th width="100" align="center"><strong>Returned 2 Student</strong></th> 
<th width="100" align="center"><strong>Job Status</strong></th> 
</thead> 

<?php 
while($rows=mysql_fetch_array($result)){ 
?> 
<tr> 

<td><? echo $rows['start']; ?></td> 
<td><? echo $rows['cases']; ?></td> 
<td><? echo $rows['type']; ?></td> 
<td width="70"><? echo $rows['damage']; ?></td> 
<td width="70"><? echo $rows['comment']; ?></td> 
<td><? echo "$"; echo $rows['cost']; ?></td> 

<!--Payment Display(Start)--> 
<?php 
     if($rows['paid']=="Paid") 
     { 
       ?> 
        <td><input name="paycheck[]" type="checkbox" id="paycheck[]" value="<? echo $rows['id']; ?>"> 
       <? echo $rows['paid'];?> 
        </td> 
        <? 
} 

     if($rows['paid']=="Unpaid") 
     { 
       ?> 
        <td width="21"><input name="paycheck[]" type="checkbox" id="paycheck[]" value="<? echo $rows['id']; ?>"> 
       <? echo $rows['paid']; ?> 
        </td> 
        <? 
} 
if($rows['ret']==""){ 
    ?> 
    <td width="50">No Data</td> 
    <? 
} 
?> 
+1

あなたが試したコードは何ですか? – Satya

+0

は、私が現時点で持っているコードをheresで使用しています。 – Matthew

+0

論理を変更し、アイデアを持って私の答えをチェックする必要があります。 –

答えて

2

jQueryを使ってそれを実行し、簡単な例は次のようになります。

HTML:

<input type="checkbox" name="option1" value="Milk"> 
<input type="checkbox" name="option2" value="Sugar"> 
<input type="checkbox" name="option3" value="Chocolate"> 

JS:

$("input[type='checkbox']").on('click', function(){ 
    var checked = $(this).attr('checked'); 
    if(checked){ 
     var value = $(this).val(); 
     $.post('file.php', { value:value }, function(data){ 
      // data = 0 - means that there was an error 
      // data = 1 - means that everything is ok 
      if(data == 1){ 
      // Do something or do nothing :-) 
      alert('Data was saved in db!'); 
      } 
     }); 
    } 
}); 

PHP:私はこれがさらに簡単にすることができ

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

    // db connection 
    $link = mysql_connect('localhost', 'mysql_user', 'mysql_password'); 
    if (!$link) { 
     // error happened 
     print(0); 
    } 
    mysql_select_db('mydb'); 

    // sanitize the value 
    $value = mysql_real_escape_string($_POST['value']); 

    // start the query 
    $sql = "INSERT INTO table (value) VALUES ('$value')"; 

    // check if the query was executed 
    if(mysql_query($sql, $link)){ 
     // everything is Ok, the data was inserted 
     print(1);  
    } else { 
     // error happened 
     print(0); 
    } 
} 
?> 
+0

こんにちは、私はjqueryで最小限の経験しか持っていませんでした。これについて申し訳ありませんが、コードを手元に持っていますか? – Matthew

+0

jquery.comに行き、jqueryをダウンロードしてください。 jsファイルを開き、htmlのscriptタグにインポートします。最後に、この$(document).ready(function(){//ここにコードを貼り付けてください})の中に入れたJSコードを入れてください。それはすべて、今あなたがテストすることができます –

+0

私はすべてのことをしており、コードは何も害虫であることについて申し訳ありません。 – Matthew

0

シンプルプット...

$('input:checkbox').click(function() { 
    clicked = $(this).attr('checked'); 
    if (clicked) { 
    /* AJAX the server to tell them it was clicked. */ } 
    else { 
    /* AJAX the server to tell them it was unclicked. */ } }); 
0

file.php。まず、チェックボックスをオンにする必要があります。

<form name="form1aa" method="post" action="process.php?fn=<? echo $rows['frist']; ?>&class=<?php echo $rows['class']; ?>&last=<?php echo $rows['last']; ?> 
&model=<?php echo $rows['model']; ?>&cas=<?php echo $rows['cases']; ?>&upid=<?php echo $id; ?>&group=1" id="form1a" > 

    <select name="type" onchange="fill_damage(document.form1aa.type.selectedIndex);"> 
    <option value="Hardware">Hardware</option> 
    <option value="Software">Software</option> 
    </select> 
    <select name="damage"> 
    </select> 
    <input type="text" name="comment" placeholder="Comments Box"> 
    <input type="text" name="cost" placeholder="Cost"> 
    <input type="checkbox" name="somecheck" onchange="if(this.checked)document.form1aa.submit()">Check this to Save. 
    <input type="submit" value="Save" name="Save"> 
    </form> 


<script type="javascript> 
//another function that works for onchange="dosubmit(this)" 
//IF you put it after the form. 
function dosubmit(el) { 
    if (el.checked) { 
     document.form1aa.submit(); 
    } 
} 
</script> 

可能であれば、あなたのonchangeイベントのスペースを取り除きます。

関連する問題