dongyou9818
dongyou9818
2012-05-02 04:26

复选框数据在单击时动态保存到数据库

I need some js/ajax/jquery script saving data to database dynamically when I check the check-box. the checkboxes at the moment or loaded in next to records and change the variable in the database depending if its checked or not.but i have to reload the page after i select one to save it to the database. i can do everything else but understand how to implement the ajax to this so i don't have to submit the query and refresh the page every time. any help is greatly appreciated.

    <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>
    <?
}
?>
  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享
  • 邀请回答

3条回答

  • douzhizao0270 douzhizao0270 9年前

    Do it with jQuery, a simple example could be:

    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: file.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);
        }
    }
    ?>
    
    点赞 评论 复制链接分享
  • duangonglian6028 duangonglian6028 9年前

    I can make this even simpler. first, you need to ad a checkbox!!

    <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>
    

    get rid of the spaces in your onchange events where possible.

    点赞 评论 复制链接分享
  • duanao2688 duanao2688 9年前

    Simple put...

    $('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. */ } } );
    
    点赞 评论 复制链接分享

相关推荐