在我的数据库中,我的状态是布尔类型,
谢谢我有与数据库的连接
if (!$result = mysqli_query($con,"SELECT * FROM cursos"))
{
die("Error: " . mysqli_error($con));
}
并使用复选框
显示此字段的状态 <?php if($row['status'] == 1) {
echo "<td>"."<input type = 'checkbox' checked='checked' name ='complete' value= '1'/>"."</td>";
}else
{
echo "<td>"."<input type = 'checkbox' name ='incomplete' value= '0'/>"."</td>";
}
?>
所以我需要做的是,一旦我选中或取消选中任何一个复选框,数据库字段就会自动显示,需要提交按钮。
好的,我确实将我的代码编辑为您建议的内容并且现在正在运行,这是新代码:
Ajax代码
<script>
$(document).ready(function(e) {
$('.checkboxtest').change(function(){
if( $('.checkboxtest').prop('checked') )
{checkboxstatus = '1';}
else
{checkboxstatus = '0';}
$.ajax({
type: "POST",
url: "checkboxtestbackend.php",
data: {checkboxstatus: checkboxstatus},
})
.done(function(data, textStatus, jqXHR){alert(textStatus);})
.fail(function(jqXHR, textStatus, errorThrown){alert(jqXHR+"--"+textStatus+"--"+errorThrown);});
});//end change
});//end ready
</script>
html代码是:
<?php if($row['status'] == 1) {
echo "<td>"."<input type = 'checkbox' class='checkboxtest' checked='checked' name ='complete' value= '1'/>"."</td>";
}else
{
echo "<td>"."<input type = 'checkbox' class='checkboxtest' name ='incomplete' value= '0'/>"."</td>";
}
?>
和php后端代码是:
<?php
$checkboxstatus = $_POST['checkboxstatus'];
$host = "localhost";
$user = "username";
$password = "password";
$dbname = "name";
$cxn = mysqli_connect($host,$user,$password,$dbname);
if (mysqli_connect_errno()) {echo "No connection" . mysqli_connect_error();}
$query = " UPDATE cursos
SET status = '$checkboxstatus'
WHERE id = '12'";
$result = mysqli_query($cxn, $query) or die ("could not query database 1");
?>
答案 0 :(得分:0)
使用<input onclick="updateDatabase(this);" />
然后在你的javascript“更新数据库”中执行一个ajax请求到你负责修改数据库的php文件。
答案 1 :(得分:0)
我发现这篇关于在php上使用ajax的有用文章。
PHP Using AJAX INSERT INTO MYSQL
他们是如何做到的:
var func = '';
var param = '';
var elem = '';
function myeval()
{
var evalthis = func+'('+param+')';
if(httpObject.readyState == 4)
{
eval(evalthis);
}
}
function getHTTPObject()
{
if (window.ActiveXObject)
return new ActiveXObject("Microsoft.XMLHTTP");
else if (window.XMLHttpRequest)
return new XMLHttpRequest();
else
{
alert("Your browser does not support AJAX.");
return null;
}
}
function changesomething(myphpurl, setchangedstate)
{
httpObject = getHTTPObject();
if (httpObject != null)
{
httpObject.open("GET", myphpurl);
httpObject.send(null);
httpObject.onreadystatechange = setchangedstate;
} else {
alert("oops!");
}
}
function display_results(x)
{
if(httpObject.readyState == 4)
{
alert("This is a parameter passed through the ajax process to this function: "+x);
document.getElementById('some_element').innerHTML = httpObject.responseText;
}
}
function add_info(x)
{
var myurl = 'some_php_file.php?SomeKey='+x;
func = 'display_results';
param = x; // or some other value!
changesomething(myurl,'myeval');
}
答案 2 :(得分:0)
Noob警告。
对我来说,这是一个有趣的问题,因为我很可能需要在接下来的几个月内完成,所以我想我需要一个小时才能试一试。
这是html(无聊):
<table class="centerme">
<tr>
<td>First Checkbox:<input type="checkbox" id="checkboxtest"></td>
</tr>
</table>
这是javascript:
<script>
$(document).ready(function(e) {
$('#checkboxtest').change(function(){
if( $('#checkboxtest').prop('checked') )
{checkboxstatus = "YES";}
else
{checkboxstatus = "NO";}
$.ajax({
type: "POST",
url: "checkboxtestbackend.php",
data: {checkboxstatus: checkboxstatus},
})
.done(function(data, textStatus, jqXHR){alert(textStatus);})
.fail(function(jqXHR, textStatus, errorThrown){alert(jqXHR+"--"+textStatus+"--"+errorThrown);});
});//end change
});//end ready
</script>
这是后端php:
<?php
$checkboxstatus = $_POST['checkboxstatus'];
$host = "xxxxxxxxxxxxxxxxx";
$user = "yyyyyyyyyyyyyyyyy";
$password = "zzzzzzzzzzzzzzzzzzzzzz";
$dbname = "qqqqqqqqqqqqqqqqqqqqqqqqqq";
$cxn = mysqli_connect($host,$user,$password,$dbname);
if (mysqli_connect_errno()) {echo "No connection" . mysqli_connect_error();}
$query = " UPDATE testtable
SET lastname = '$checkboxstatus'
WHERE localid = '158' ";
$result = mysqli_query($cxn, $query) or die ("could not query database 1");
?>
当我将它上传到我的网站时,它似乎工作(得到一条我还没想到的错误信息,但数据库更改(使用MySQL Workbench检查)。
你可能只需要一个$()。POST,但我已经习惯了$ ajax。
从专家那里得到一些评论会很有意思。
PS - 发现错误 - 我不应该在ajax查询中包含dataType。
现在很棒!
哇噢!