Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/271.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript PHP和Ajax:如何找出用户单击哪个对象传递给PHP?_Javascript_Php_Jquery_Ajax - Fatal编程技术网

Javascript PHP和Ajax:如何找出用户单击哪个对象传递给PHP?

Javascript PHP和Ajax:如何找出用户单击哪个对象传递给PHP?,javascript,php,jquery,ajax,Javascript,Php,Jquery,Ajax,我在这里测试了一些代码,基本上html文件代码的目的是响应php文件中的值,这取决于用户单击的h3标题 <!DOCTYPE html> <html> <head> <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script> </head> <body> <h3 id="rand

我在这里测试了一些代码,基本上html文件代码的目的是响应php文件中的值,这取决于用户单击的h3标题

<!DOCTYPE html>
<html>
<head>
   <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>
</head>
<body>
    <h3 id="random1" name="random_request1">Click here to get number from php</h3>
<p id="randomnumber">Number here</p>
<h3 id="random2" name="random_request2">Click here to get string from php</h3>
<p id="randomtext">Text here</p>
    <script>
    $('#random1').click(function()
     {
        //On click: ask php to get me a random text file 
         $.ajax({
            type: 'POST',
            url: "action.php",
            success: function(newrandom)
            {
                $('#randomnumber').replaceWith(newrandom);
            }
        }); 
     });

$('#random2').click(function()
     {

         $.ajax({
            type: 'POST',
            url: "action.php",
            success: function(newrandom)
            {
                $('#randomtext').replaceWith(newrandom);
            }
        }); 
     });
</script>
</body>
</html>
这是action.php代码:

<?php
if ($_POST['random_request1']) {
    $random = rand();
    echo $random;
}

else if ($_POST['random_request2']){
    echo 'abcd';
}
?>

毫不奇怪,php无法识别$\u POST[]中的随机请求1和2名称。在这种情况下,我想我还没有完全掌握POST函数来回答这个问题。

您需要一种方法来区分发件人。可能会传递一个参数:

$('#random2').click(function()
 {

     $.ajax({
        type: 'POST',
        url: "action.php?action=random2",
        success: function(newrandom)
        {
            $('#randomtext').replaceWith(newrandom);
        }
    }); 
 });
或者让他们转到不同的端点:

$('#random1').click(function()
 {
    //On click: ask php to get me a random text file 
     $.ajax({
        type: 'POST',
        url: "action.php",
        success: function(newrandom)
        {
            $('#randomnumber').replaceWith(newrandom);
        }
    }); 
 });

$('#random2').click(function()
 {

     $.ajax({
        type: 'POST',
        url: "action2.php",
        success: function(newrandom)
        {
            $('#randomtext').replaceWith(newrandom);
        }
    }); 
 });

当然还有更多的方法。这可能不适合您最终要做的事情,但这是一种简单的开始方式。

您需要一种区分发件人的方法。可能会传递一个参数:

$('#random2').click(function()
 {

     $.ajax({
        type: 'POST',
        url: "action.php?action=random2",
        success: function(newrandom)
        {
            $('#randomtext').replaceWith(newrandom);
        }
    }); 
 });
或者让他们转到不同的端点:

$('#random1').click(function()
 {
    //On click: ask php to get me a random text file 
     $.ajax({
        type: 'POST',
        url: "action.php",
        success: function(newrandom)
        {
            $('#randomnumber').replaceWith(newrandom);
        }
    }); 
 });

$('#random2').click(function()
 {

     $.ajax({
        type: 'POST',
        url: "action2.php",
        success: function(newrandom)
        {
            $('#randomtext').replaceWith(newrandom);
        }
    }); 
 });

当然还有更多的方法。这可能不适合您最终要做的事情,但这是一种简单的开始方式。

只需单击一次事件即可

$('h3[id^="random"]').on('click',function()
     {
        //On click: ask php to get me a random text file 
         $.ajax({
            type: 'POST',
            url: "action.php",
            data: {id : $(this).attr('id')},
            success: function(newrandom)
            {
                $('#randomnumber').replaceWith(newrandom);
            }
        }); 
     });
在您的action.php中

<?php 
  $id = $_POST['id'];
?>

只需单击一次事件

$('h3[id^="random"]').on('click',function()
     {
        //On click: ask php to get me a random text file 
         $.ajax({
            type: 'POST',
            url: "action.php",
            data: {id : $(this).attr('id')},
            success: function(newrandom)
            {
                $('#randomnumber').replaceWith(newrandom);
            }
        }); 
     });
在您的action.php中

<?php 
  $id = $_POST['id'];
?>


您没有通过AJAX传递这些项目。您可以在单击时立即使用$this-inside-click-handler,您可以对action.php进行AJAX调用,但不提供任何其他数据。看看,它会告诉你怎么做。@Tushar谢谢,我刚刚意识到我可以用$this缩短纸条somehow@MariM嗯,看起来不错。你认为我应该向php文件发送什么样的数据?我是否应该为每个标记分配一个值;并检查$\u POST是否等于该值?您没有通过AJAX传递这些项目。您可以使用$this in-click handler现在单击时,您对action.php进行AJAX调用,但不提供任何其他数据。看看,它会告诉你怎么做。@Tushar谢谢,我刚刚意识到我可以用$this缩短纸条somehow@MariM嗯,看起来不错。你认为我应该向php文件发送什么样的数据?我是否应该为每个标记分配一个值;并检查$u POST是否等于该值?谢谢,但我也可以发表评论吗?成功回调不是我想要实现的,在这种情况下,两种情况下的echo'ed值似乎都将替换

标记中的内容。您可以检查$this.attr'id'以确定要使用的选择器。只需修改success函数的内部即可。@vagaryblue您可以在php中使用if语句。。并根据需要的id回显所需内容。。在回调中,使用另一个if语句,该语句的值是从php中回显的。。并采取行动then@vagaryblue更新答案抱歉,我的错误输入:$'[id^=random]应该是$'h3[id^=random]@vagaryblue祝你好运:谢谢,但我也可以发表评论吗?成功回调不是我想要实现的,在这种情况下,两种情况下的echo'ed值似乎都将替换

标记中的内容。你可以选中$this.attr'id以确定要使用哪个选择器。只需修改f success函数。@vagaryblue您可以在php..中使用if语句,并根据所需的id.回显所需内容。在callback中,使用另一个if语句和从php.回显的值,并执行该操作then@vagaryblue更新答案抱歉,我的错误输入:$'[id^=random]应该是$'h3[id^=random]“@vagaryblue祝你好运:我可以用简单的方法处理不同的php文件,但我也想看看如何只用一个端点就能达到预期的结果。@vagaryblue这就是我答案中的第一个方法所做的。对于你的简单场景,Mohamed Yousef的答案可能更好。但是如果你正在构建一个搜索函数,比方说,它是在URL中使用参数可能会更干净。我可以简单地使用不同的php文件,但我也想看看如何仅使用一个端点就能达到预期的结果。@vagaryblue这就是我答案中的第一个方法所做的。对于您的简单场景,Mohamed Yousef的答案可能更好。但是如果您正在构建一个搜索功能。在URL中使用参数可能更干净。