我在我的索引中有这个div区域,我想用它作为一个按钮(用于图形问题),当这个按钮被cliked时,我希望它将这个值发送到php文件,我想根据以下内容返回一些值这个价值。这是我迄今为止所做的,但它根本不起作用。
这是我的output.php(索引)
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
<script type="text/javascript">
int sayac = 1;
$(document).delegate("#klikme", "click", function() {
$.post('sayac.php',{"komut": sayac }, function(data){
$('#output').html(data);
});
sayac = sayac + 1;
});
</script>
<div id = "klikme">
KLİK ME!
</div>
<div id = "output">
<?php include 'sayac.php'?>
</div>
sayac.php
if(isset($_POST["komut"]))
{
switch($_POST["komut"])
{
case 1:
echo "This is one";
break;
case 2:
echo "This is two";
break;
default:
echo "Something is wrong";
break;
}
}
return false;
答案 0 :(得分:1)
在您的php文件中,您忘记了案例2中的中断语句,这会导致问题。
if(isset($_POST["komut"]))
{
switch($_POST["komut"])
{
case 1:
echo "This is one";
break;
case 2:
echo "This is two";
break;
default:
echo "Something is wrong";
break;
}
}
如果我是你,我会像下面那样重新配置html,但这取决于你。因此,要在javascript中定义变量,您需要使用var
关键字。
<div id="klikme">
KLİK ME!
</div>
<div id="output"></div>
<script type="text/javascript">
var sayac = 1;
$(document).delegate("#klikme", "click", function() {
$.post('sayac.php',{"komut": sayac++ }).success(function(data){
$('#output').html(data);
});
});
</script>
答案 1 :(得分:1)
此脚本的正确版本是:
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>
<script>
(function($) {
var counter = 1;
$(document).ready(function() {
$('#clickme').on("click", function(){
counter++; // first increment counter
$.post('http://localhost/index.php', {"counter" : counter }, function(data) {
$('#output').html(data);
});
$('#counter').text(counter);
});
});
})(jQuery);
</script>
<div id="clickme">Click ME!</div>
<div id="counter">1</div>
<div id="output"><?php include 'index.php'; ?></div>
注意一些事情:
(function($) { }(jQuery)
中已接近
$(document).ready(function() { });
on()
代替delegate()
since jQuery 1.7 $.post()
你的PHP文件可以是这样的(see $_REQUEST):
<strong><?php echo intval($_REQUEST['counter']); ?></strong>
答案 2 :(得分:0)
它无法正常工作,因为您遇到错误,修复它们并重试。
更改int sayac = 1; to sayac = 1;在output.php中
将默认值更改为默认值:在sayac.php中
答案 3 :(得分:0)
在将JavaScript事件绑定到页面之前,我会等到文档加载完毕,这是因为在某些浏览器中,您的代码将在您尝试绑定的元素之前开始执行,这意味着您的事件没有绑定。 / p>
我会像这样重写你的JS代码:
var sayac = 1;
$(document).ready(function() {
$(document).delegate("#klikme", "click", function() {
$.post('sayac.php',{"komut": sayac }, function(data){
$('#output').html(data);
});
sayac = sayac + 1;
});
});
但是,考虑到委托的性质,你会认为这不是一个问题 - 可能的原因是来自int sayac的JS错误,如下所述。
答案 4 :(得分:0)
您的代码中存在2个小的语法错误,这些错误打破了它:
使用Javascript:
//This is not C, define a variable with "var", not int sayac
var sayac = 1;
PHP:
switch($_POST["komut"])
{
case "1":
echo "This is one";
break;
case "2":
echo "This is two";
break;//<- put "break" here to print only the message for 2
default: //<- put ":" here
echo "Something is wrong";
break;
}