首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用AJAX调用<input>函数

使用AJAX调用<input>函数
EN

Stack Overflow用户
提问于 2014-05-26 13:46:53
回答 1查看 248关注 0票数 0

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

但我似乎搞不明白。

我使用它作为<input>代码:

代码语言:javascript
复制
<?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函数。我试过这个:

代码语言:javascript
复制
 <script>
        function echoHello()
        {
            alert("<?php hello(); ?>");
        }
    </script>
    <?php

    function hello() {

        echo "Hello World";
    }
    ?>

这起作用了,因此我试图将其更改为:

代码语言:javascript
复制
<script>
        function echoHello(num)
        {
            alert("<?php hello(num); ?>");
        }
    </script>
    <?php
    function hello($num) {
        if($num == 1) {
        echo "Correct button!!!";
    } else {
        echo "WRONG BUTTON";
    }
    ?>

但这似乎行不通。我做错了什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-05-26 13:52:27

我想你在这里有相当大的问题。我建议直接写出按钮,并将按钮值传递给javascript:

代码语言: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优度之后):

代码语言:javascript
复制
function echoHello(btnValue) {
    $.ajax({
      type: "POST",
      url: "formhandler.php",
      data: { buttonValue: btnValue }
    })
      .done(function( msg ) {
        alert( "Data Saved: " + msg );
      });
}

上面的javascript将使用AJAX将按钮值发送到您的“formhandler.php”页面。在'formhandler.php‘中,您可以检查$_POST"buttonValue“的值。

使用您的设置以及jQueryPHP和JSON,它可能如下所示:

代码语言:javascript
复制
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 + '"/>');
        });
    });
}

这只是一个样本,给你一个想法!(它也是未经测试的;)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23871631

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档