单击按钮运行PHP

时间:2013-12-16 00:53:18

标签: php jquery html

我正在学习jQuery和PHP。我正在制作一个简单的是或否的神谕。它的工作,但我需要刷新页面,如果我想问一些新的东西。我想在有人点击按钮时启动PHP。我的代码非常简单。 <div class="ask">是按钮。我知道我可以用jQuery做到这一点,但我想学习一点PHP。

我的代码:

PHP:

    $answer = array("Yes", "No", "I could not decide ask again later");
    $randKey = array_rand($answer);

jQuery的:

 $(document).ready(function() {

    $( ".ask" ).click(function( event ) {
        event.preventDefault();
    });

    $('input').bind("enterKey",function(e){
        $('.ask a').click();
    });
    $('input').keyup(function(e){
        if(e.keyCode == 13)
        {
            $(this).trigger("enterKey");
        }
    });

    $('.ask a').click(function(){
        if($('input').val() == ''){
            $('h2 span').remove();
            $('h2').append("<span>It's a secret? You need to ask someting.</span>");
        }
        else{
            $('.answer span').fadeIn(2000);
            $('h2').css({'border-bottom' : '1px solid black', 'padding-bottom' : '20px'}); 
            var kysymys = $('input').val();
            $( "h2" ).html( "<b>You asked: </b> " + "<span>"  + kysymys + "?</span>");
            // $('input').val("");
        }
    });

 });

HTML:

<body>
        <?php require_once("inc/yes-or-no.php"); ?>
        <h2></h2>
        <h1 class="answer"> Your answer: <span><?php echo $answer[$randKey]; ?></span></h1>
        <p class="input"><input type="text" autofocus> <span>?</span></p>
        <div class="ask"> <a href="#"> Ask your question!</a></div>
    </body>

4 个答案:

答案 0 :(得分:1)

您需要使用AJAX向Web服务器发送请求。你不能只在javascript中运行PHP(除非有人构建了解释器):javascript通常在客户端运行,而PHP在服务器端运行。要让PHP执行某些操作,您必须向服务器询问正确的问题(即HTTP请求)。

编辑:哦,我误读并错过了require_once()。只需让PHP回显javascript或隐藏的HTML部分,然后使用javascript拉出相关信息。

e.g。

echo <script>var foo = "bar"; </script>

当然,您应首先使用PHP解释器使服务器实际运行提供的页面。

答案 1 :(得分:1)

我认为你需要了解服务器中的php运行,而jquery在客户端运行。因此,每当有人点击按钮时,您需要通知您的服务器端PHP代码执行某些操作。你可以用ajax做到这一点。这不会导致页面刷新。

答案 2 :(得分:1)

PHP是一种服务器端语言,而JavaScript(构建于jQuery上)是一种客户端语言。这意味着如果要执行PHP文件,则需要向服务器提交请求,让服务器执行它,然后使用结果回复客户端。您可以通过刷新页面来执行此操作(正如您现在所做的那样)。或者,您可以进行AJAX(JavaScript)调用。

您不能让客户端执行PHP代码 - 客户端只执行JavaScript。

答案 3 :(得分:0)

HTML:

<body>
        <h2></h2>
        <h1 class="answer"> Your answer: <span><?php echo $answer[$arrayKeys[0]]; ?></span></h1>
        <p class="input"><input type="text" autofocus> <span>?</span></p>
        <div class="ask"> <a type="submit" href="#"> Ask your question!</a></div>
</body>

jQuery的:

$('.ask a').click(function(){
        if($('input').val() == ''){
            $('h2 span').remove();
            $('h2').append("<span>It's a secret? You need to ask someting.</span>");
        }
        else{
      $(".answer span").load("inc/yes-or-no.php"); 
        }

});

PHP:

header("Cache-Control: no-cache"); 
// Ideally, you'd put these in a text file or a database.  
// Put an entry on each line of 'a.txt' and use $prefixes = file("a.txt"); 
// You can do the same with a separate file for $suffixes. 
$prefixes = array("Yes", "No", "I couldn't decide, ask again later.");
// This selects a random element of each array on the fly 
echo $prefixes[rand(0,count($prefixes)-1)];
// Example output: Tagging is the new Media 

您可以在Sitepoint上阅读更多内容

感谢http://www.sitepoint.com/ajax-jquery/