PHP - 表单复选框提交与AJAX
我hava设置AJAX脚本,当你点击它调用一个PHP文档的按钮。PHP - 表单复选框提交与AJAX
我现在的问题是PHP文件中的一些变量被设置为常量,现在我希望它们能够在单击按钮时发送的条件。
我想那里有一个复选框,如果点击,将设置一个PHP变量为TRUE,而如果不点击,则设置为FALSE。
我希望问题足够清楚。
我现在将粘贴下面的代码,因为它可能有助于澄清问题。
对不起,我必须粘贴这个“庞大”的代码块,但我不确定哪些可能是有用的,哪些不是。
这里是index.html的
<html>
<head>
<script type="text/javascript">
function loadXMLDoc()
{
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("myDiv").innerHTML=xmlhttp.responseText;
}
}
xmlhttp.open("GET","roulette.php",true);
xmlhttp.send();
}
</script>
</head>
<body>
<div id="myDiv"><h2>Welcome to Trufa’s Roulette</h2></div>
<button type="button" onclick="loadXMLDoc()">Spin the Wheel!</button>
</body>
</html>
这里是roulette.php的一部分
### Comprare pick to result
//The squares
$sqr_00 = -1;
$sqr_0 = 0;
$sqr_1 = 1;
//Placed bets, if true he placed bet
$bet_straight_placed = array(
$sqr_00 => false,
$sqr_0 => true,
$sqr_1 => true
);
我需要什么,我以前告诉过,是替代FALSE在$sqr_00 => false
,对于当复选框被选中时变量是真的!
我希望这个问题已经够清楚了,但是请您澄清一下!
提前致谢!
特鲁
编辑:
寻址@grossvogel回复我张贴我的理解他的回答becuse它无法正常工作。对不起,非常感谢!
<html>
<head>
<script type="text/javascript">
function loadXMLDoc()
{
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("myDiv").innerHTML=xmlhttp.responseText;
}
}
xmlhttp.open("GET","roulette.php",true);
xmlhttp.send();
}
var isChecked = document.myform.checkbox.checked ? 1 : 0;
xmlhttp.open("GET","roulette.php?boxchecked=" + isChecked,true);
</script>
</head>
<body>
<div id="myDiv"><h2>Welcome to Trufa’s Roulette</h2></div>
<form name="myform">
<input type="checkbox" name="checkbox" value="checkbox" />00<br />
<button type="button" onclick="loadXMLDoc()">Spin the Wheel!</button>
</form>
</body>
</html>
和PHP
//The squares
$sqr_00 = -1;
$sqr_0 = 0;
$sqr_1 = 1;
//Placed bets, if true he placed bet
$chb_00 = $_GET['boxchecked'];
$bet_straight_placed = array(
$sqr_00 => (bool) $chb_00,
$sqr_0 => true,
$sqr_1 => true
);
//tell the user what number he piecked
echo "You chose this numbers: " . join(", ", array_keys(array_filter($bet_straight_placed))) . '<br />' . '<br />';
我很抱歉,我知道这一定是完全基本的,但我不能让我的头围绕这个AJAX“东西”呢。
谢谢!!!
在JavaScript,你可以做这样的事情
var isChecked = document.myform.checkbox.checked ? 1 : 0;
xmlhttp.open("GET","roulette.php?boxchecked=" + isChecked,true);
然后,在你的PHP,你可以阅读$_GET['boxchecked']
,这将是1,如果在检查中,0,如果事实并非如此。
编辑:扩展到多个领域的想法。
要做到这一点,你会添加尽可能多的复选框,你可以说他们的名字是value1, value2, value3, ...
。然后,你可以做这样的事情:
var value1 = document.myform.value1.checked ? 1 : 0;
var value2 = document.myform.value2.checked ? 1 : 0;
var value3 = document.myform.value3.checked ? 1 : 0;
...
和
xmlhttp.open("GET","roulette.php?value1=" + value1 + "&value2=" + value2 + "&value3=" + value3 ...,true);
在PHP中,读$_GET['value1'], $_GET['value2'], $_GET['value3']...
一旦你的理念,你可以写一些功能,以减少重复,如果你想。
谢谢,我会试试看! – Trufa 2010-10-19 22:01:50
我应该在index.html中输入: 00
? –
Trufa
2010-10-19 22:10:42
是的,您需要添加复选框输入。它应该驻留在一个表单中(在我的例子中,'name =“myform”'),它的名字应该与javascript(在我的例子中,'checkbox')匹配。值并不重要,但如果您希望在加载页面时检查它,则可以添加checked =“checked”。 – grossvogel 2010-10-19 22:20:51
一个建议,当你试图获得AJAX的挂件:使用Firebug。它给出了有用的错误,让你把你的javascript中的断点,并让你查看所有异步请求的内容。无价。 http://getfirebug.com/ – grossvogel 2010-10-19 22:54:29
好的建议,我会感谢你! – Trufa 2010-10-19 23:00:23