Javascript PHP和Ajax:如何找出用户单击哪个对象传递给PHP?
我在这里测试了一些代码,基本上html文件代码的目的是响应php文件中的值,这取决于用户单击的h3标题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
<!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中使用参数可能更干净。