2013-12-16 186 views
1

我正在學習jQuery和PHP。我正在做一個簡單的是或不是的預言。它的工作,但我需要刷新頁面,如果我想問一些新的東西。當有人點擊按鈕時,我想開啓PHP。我的代碼非常簡單。 <div class="ask">是按鈕。我知道我可以用jQuery來做,但我想學習一點PHP。在按鈕上點擊運行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> 
+0

退房[jQuery的AJAX(http://api.jquery.com/jQuery。 AJAX /)。 – mdesdev

回答

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/

1

您將需要使用AJAX請求發送到網絡服務器。你不能在javascript中運行PHP(除非有人構建瞭解釋器):JavaScript通常運行在客戶端,而PHP運行在服務器端。爲了讓PHP做些什麼,你必須向服務器詢問正確的問題(即HTTP請求)。

編輯:哦,我誤讀並錯過了require_once()。只需讓PHP回顯一個javascript或隱藏的HTML部分,然後使用javascript將相關信息拖出即可。

例如

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

當然,您應該首先讓服務器使用PHP解釋器實際運行託管頁面。

1

我認爲你需要理解php運行在服務器上,而jquery在客戶端運行。所以只要有人點擊一個按鈕,你需要通知你的服務器端的PHP代碼做些什麼。你可以使用ajax來做到這一點。這不會導致頁面刷新。

1

PHP是一種服務器端語言,而JavaScript(jQuery構建於其上)是客戶端語言。這意味着如果你想執行一個PHP文件,你需要向服務器提交請求,讓服務器執行它,然後用結果回覆客戶端。你可以通過刷新頁面來做到這一點(正如你現在所做的那樣)。或者,您可以進行AJAX(JavaScript)調用。

您不能讓客戶端執行PHP代碼 - 客戶端只執行JavaScript。

+0

感謝您的快速回復。對於Ajax和Json我完全陌生,我讀了一些它,但我不太明白該怎麼做。我是否需要更改我的PHP代碼?我不明白我怎麼可以Ajax一個PHP變量或JSON它。 – Pullapooh