所以每当我点击一个表格行时,我都希望根据我数据库中的数据自动检查这些框。我目前正在使用AJAX脚本进行此表行单击,但是,我无法弄清楚如何将php变量值转移到我的主文件的php变量上并替换值,来自我的其他php文件,我正在执行AJAX php代码。
这是我的主文件复选框。
<input type="checkbox" name="skincareinuse[]" value="Lotion" <?php if(in_array("Lotion",$skincareinuse)) { ?> checked="checked" <?php } ?>/>Lotion<br>
这是我的另一个php文件,其中我的AJAX脚本正在从中绘制值。我做了爆炸并将它们存储在php变量中。
$skincareinuse=explode(",",$row['skincarecurrentlyinuse']);
问题是在我的AJAX脚本从中绘制值的php文件中,变量$ skincareinuse无法更新到我的主php文件中的$ skincareinuse。 让我们说即使我能够使用JSON来实现价值,我如何将JSON编码为javascript来存储呢? 对不起,如果我没有解释,请帮忙!
@Iceman,是否可以在ajax脚本中运行.ajax函数?
function showconsultationdata(str) { //face e.g and checkboxes for that date selected.
var xmlhttp;
if (str == "") {
document.getElementById("txtHint2").innerHTML = "";
return;
} else {
if (window.XMLHttpRequest) {
// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp = new XMLHttpRequest();
} else {
// code for IE6, IE5
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange = function() {
if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
document.getElementById("txtHint2").innerHTML = xmlhttp.responseText;
var a = JSON.parse($(xmlhttp.responseText).filter('#arrayoutput').html());
$("textarea#skinconditionremarks").val(a.skinconditionremarks);
$("textarea#skincareremarks").val(a.skincareremarks);
$.ajax({
url: "BAConsultRecordsAJAX.php"
})
.done(function(data) {
console.log(data);
selectTestAnswer(data.key + "[]", data.value)
})
.fail(function() {
alert("error");
})
}
}
xmlhttp.open("GET","BAConsultRecordsAJAX.php?q="+str,true);
xmlhttp.send();
}
}
答案 0 :(得分:1)
实施例
x
$('#mybutton').click(function() {
$.ajax({
//sample json, replace with your data
url: "http://echo.jsontest.com/key/skincareinuse/value/Lotion"
})
//if data retrieval was successfull
.done(function(data) {
console.log(data);
//got data as json from server. NOw lets update the page(DOM).
selectTestAnswer(data.key + "[]", data.value)
})
//if data retrieval was a failure
.fail(function() {
alert("error");
})
});
//a simple function that if called with say with skincareinuse[] and Lotion marks the corresponding checkbox.
var selectTestAnswer = function(chkbox, value) {
$("[name='" + chkbox + "']").each(function() {
if ($(this).val() == value)
$(this).attr('checked', true);
else
if ($(this).attr('checked') == true)
$(this).attr('checked', false);
});
}
我已经演示了一个示例,其中ajax从服务器读取数据(此处为测试URL),然后相应地更新(即检查框)。
这是一个关于如何从AJAX进行更新的示例。我建议你阅读AJAX的工作原理。