Javascript <;输入>;使用AJAX调用PHP函数

Javascript <;输入>;使用AJAX调用PHP函数,javascript,php,jquery,ajax,Javascript,Php,Jquery,Ajax,我试图使用AJAX调用一个PHP函数来检查按下的按钮是否正确 但我似乎不明白 我将此用作代码: <?php $i=0; while ($i<4){ ?> <input style="background-color: <?php echo $buttonColors[$i]; ?>" onclick="echoHello(<?php echo $i?>)" type="submit" value="<?php ec

我试图使用AJAX调用一个PHP函数来检查按下的按钮是否正确

但我似乎不明白

我将此用作
代码:

<?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; } ?>


我想你把一些事情搞混了。 我建议只写下按钮,并将按钮值传递给javascript:

<?php
    $i=0;
    while ($i<4){
?>
<input onclick="echoHello(this.value)" type="submit" value="<?php echo $buttonName[$i]; ?>">
<?php 
     $i=$i+1; 
    } ?>
上面的javascript将使用AJAX将按钮值发送到“formhandler.php”页面。 在“formhandler.php”中,您可以检查$\u POST[“buttonValue”]的值是多少

使用您的设置,以及,和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 + '"/>');
        });
    });
}
函数echoHello(btnValue){
$.getJSON('page.php'{
选项:BTN值
})
.完成(功能(数据){
//基于$_GET[“choice”],您的PHP可以呈现一些JSON,如:
//{“背景”:“image.jpg”,“字段”:[“newValue1”,“newValue2”,“newValue3”]}
//清除当前html
$(“#表格”).html(“”);
//加载新的背景
$('body').css({'background-image':data.background})
//设置新字段:
$.each(数据字段、函数(i、项){
$(“#表格”)。附加(“”);
});
});
}

这只是一个例子,给你一个想法!它也未经测试;)

ajax在哪里,您所做的根本没有意义,if语句在页面发送到浏览器之前就在服务器端执行了,远远早于单击任何按钮。你可以做的只是将PHP变量回显到一个javascript变量,然后在javascript中执行if条件,因为你并不需要ajax。最好回显PHP响应中的标记和信息。为什么会有这些?Athanasios是因为我有4个按钮供你选择。Adeneo我想把一个变量从HTML解析为PHP,为此你需要Ajax,至少我读到了这个。我想把值从HTML解析为PHP,但没有Ajax我做不到,因为PHP是服务器端的。这意味着我只能在新页面上看到帖子?我希望能够在同一个页面中处理它,而无需重定向或其他任何操作。这意味着您必须将PHP页面划分为一个部分,该部分仅处理$\u POST数据,其余部分则全部处理。这就是AJAX请求的全部内容:将GET或POST请求发送到可以解析数据的服务器端页面。我已经完成了,我制作了一个AJAX脚本,将变量发布到formhandler.php,但是现在我可以用.php脚本做什么呢?因为game.php已经被完全调用了,所以他不知道变量已经设置好了,我应该使用Javascript检查哪个按钮被点击了吗?从功能上来说,你想实现什么?通常使用AJAX时,您会根据从AJAX请求返回的响应来更新htmldom。例如,您可以隐藏一些按钮或显示/创建其他按钮,所有这些都只使用javascript。。。
<?php
    $i=0;
    while ($i<4){
?>
<input onclick="echoHello(this.value)" type="submit" value="<?php echo $buttonName[$i]; ?>">
<?php 
     $i=$i+1; 
    } ?>
function echoHello(btnValue) {
    $.ajax({
      type: "POST",
      url: "formhandler.php",
      data: { buttonValue: btnValue }
    })
      .done(function( msg ) {
        alert( "Data Saved: " + msg );
      });
}
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 + '"/>');
        });
    });
}