我正在尝试使用AJAX调用PHP函数来检查按下的按钮是否是正确的按钮。
但我似乎无法弄明白。
我将其用作<input>
代码:
<?php
$i=0;
while ($i<4){
?>
<input style="background-color: <?php echo $buttonColors[$i]; ?>" onclick="echoHello(<?php echo $i?>)" type="submit" value="<?php echo $buttonName[$i]; ?>">
<?php $i=$i+1; } ?>
并且我在单击按钮时尝试调用PHP函数。我试过这个:
<script>
function echoHello()
{
alert("<?php hello(); ?>");
}
</script>
<?php
function hello() {
echo "Hello World";
}
?>
这样可行,所以我试图将其更改为:
<script>
function echoHello(num)
{
alert("<?php hello(num); ?>");
}
</script>
<?php
function hello($num) {
if($num == 1) {
echo "Correct button!!!";
} else {
echo "WRONG BUTTON";
}
?>
但这似乎不起作用。我做错了什么?
答案 0 :(得分:0)
我觉得你在这里混淆了很多东西。 我建议只写出按钮,并将按钮值传递给javascript:
<?php
$i=0;
while ($i<4){
?>
<input onclick="echoHello(this.value)" type="submit" value="<?php echo $buttonName[$i]; ?>">
<?php
$i=$i+1;
} ?>
然后在您的javascript中(在添加所有jQuery goodness之后):
function echoHello(btnValue) {
$.ajax({
type: "POST",
url: "formhandler.php",
data: { buttonValue: btnValue }
})
.done(function( msg ) {
alert( "Data Saved: " + msg );
});
}
上面的javascript会将按钮值发送到您的&#39; formhandler.php&#39;页面,使用AJAX。 在&#39; formhandler.php&#39;中,您可以检查$ _POST [&#34; buttonValue&#34;]的值是什么。
使用您的设置以及jQuery,PHP和JSON,可能是这样的:
function echoHello(btnValue) {
$.getJSON('page.php', {
choice: btnValue
})
.done(function(data) {
// based on $_GET["choice"], your PHP could render some JSON like:
// {"background":"image.jpg","fields":["newValue1", "newValue2", "newValue3"]}
// clear the current html
$("#form").html('');
// load a new background
$('body').css({'background-image':data.background})
// set up the new fields:
$.each(data.fields, function( i, item ) {
$("#form").append('<input type="text" value="' + item + '"/>');
});
});
}
这只是一个样本,给你一个想法!它也未经测试;)