2014-04-21 73 views
0

請看看這段代碼第一:如何在沒有重新加載頁面更新數據庫thruogh下拉

$(document).ready(function() { 
$("#alternatecolor [type=button]").each(function() { 
    $(this).on('click', function() { 
     btnObj = $(this); 
     rowId = $(this).attr("rowId"); 
     changeStatus = $(this).attr("changeStatus"); 
     $.get("changeStatus.php?rowId="+rowId+"&changeStatus="+changeStatus,function(data,status){ 

            if(changeStatus == 0){ 
       str ="Unverify"; 
       btnText = "Verify"; 
       newStatus = 1; 
      } 
      else{ 
       str ="Verify"; 
       btnText = "Unverify"; 
       newStatus = 0; 
      } 

      if(data == 'success'){     
       alert("Status updated successfully to "+str+"."); 
       btnObj.val(btnText); 
       btnObj.attr("changeStatus",newStatus); 
      } 
      else{ 
       alert("some error"); 
      } 
     }); 
    }); 
}); 
}); 
</script> 

這是我改變狀態頁:

$dbhost = 'xxxxxx'; 
$dbuser = 'xxxxxxx'; 
$dbpass = 'xxx'; 
$conn = mysql_connect($dbhost, $dbuser, $dbpass); 
if(! $conn) 
{ 
    die('Could not connect: ' . mysql_error()); 
} 
mysql_select_db('xxxxxxxx'); 

$sql ="update experiment set verification=".$_GET['changeStatus']." where row=".$_GET['rowId']; 

$retval = mysql_query($sql, $conn); 

if(!($retval)) 
{ 
    die('error'); 
} 
else{ 
    echo "success"; 
} 
mysql_close($conn); 

我在這個代碼用一個按鈕來查詢我的數據庫值爲0,1。如果按下一次,數據庫查詢1,如果再次按下,數據庫查詢爲0.

現在,我必須放置一個下拉式代替帶有3個值的按鈕來查詢數據庫:0,1,2。如果選擇第一個值,數據庫行將更新爲值爲0等等。

我該怎麼做?

+0

「mysql的API」 已過時,使用[mysqli的(HTTP://www.php .net/manual/en/book.mysqli.php) –

+0

我會更進一步@GuilhermeNascimento並使用PDO –

+0

@ No1_Melman一個很好的建議,但這種情況是一個意見。 –

回答

0

刪除按鈕,並添加選擇這樣的:

<select class="my-select"> 
<option value="0">update</option> 
<option value="1">create</option> 
<option value="2">delete</option> 
</select> 

你還需要添加數據ROWID屬性。

的jQuery:

$(document).ready(function() { 
$(".my-select").change(function() { 
     btnObj = $(this); 
     rowId = $(this).attr("data-rowId"); 
     changeStatus = $(this).val(); 
     $.get("changeStatus.php?rowId="+rowId+"&changeStatus="+changeStatus,function(data,status){ 

      if(data == 'success'){     
       alert("Status updated successfully to "+str+"."); 

      } 
      else{ 
       alert("some error"); 
      } 

    }); 
}); 
}); 
+0

要繼續使用事件綁定,請使用'.on('change',function(){})' –

+0

它似乎不是動態生成的html。所以在這裏不需要任何代表。 –

0

更新 創建 刪除

可以使用類名或ID做。如果是id,則在下面的代碼中執行$("#id1").click(function() {...

Awlad已經完成了使用GET方法,下面是使用POST方法。

 $(function() { 
      $(".my-select").click(function() { 
      var category = $(this).text(); 
      //$('label').css('color', selText); 
       $.ajax({ 
         url: "invite_db.php", 
         type: "POST", 
         data: {"category": category}, 
         success: function(data) { 
          $(".articleContent").html(data); 

          //setInterval("messageDisable()", 5000); 
         } 
        }); 
      }); 
     }); 

我已經根據我的代碼使用了參數名稱。請你改變它

0

這裏是你的HTML和Javascript代碼

<select onchange="getval(this);"> 
<option value="1">One</option> 
<option value="2">Two</option> 
</select> 


<script type="text/javascript"> 
function getval(sel) { 
    $.ajax({ 
     type: "POST", 
     url: url, // url is page where you want to process this post request 
     data: 'val=' + sel.value, 
}); 
} 
</script> 

在PHP端

<?php 
// Your database connection code 
$val = $_POST['val']; 
mysql_query("UPDATE 'tablename' SET 'column name' = $val 'Your WHere caluse'") 
?> 
相關問題