我正在学习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>
答案 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上阅读更多内容