Php 如何通过单击jQuery中具有给定ID的按钮来使用Ajax调用函数
我正试图建立团队项目的网站。基本上,这个网站从中获取一些数据。我使用HTML、PHP、jQuery和Ajax为我的网站提供一些功能。我用PHP创建了一个对象,并使用for循环打印功能poll_id是其中的关键部分,因为当我投票两张照片时,我会使用特定的id来决定投票的对象。让我们来讨论这个问题。如果我使用SESSION将值传递给“Ajax.php”,其中包括API的post函数,它将直接投票给数据库的最后一个轮询元素,无论我单击哪个元素 所以,问题是>>>如何通过单击按钮将特定ID从jQuery拉到Ajax 这里有一些代码来澄清我的问题 来自Ajax.phpPhp 如何通过单击jQuery中具有给定ID的按钮来使用Ajax调用函数,php,jquery,ajax,Php,Jquery,Ajax,我正试图建立团队项目的网站。基本上,这个网站从中获取一些数据。我使用HTML、PHP、jQuery和Ajax为我的网站提供一些功能。我用PHP创建了一个对象,并使用for循环打印功能poll_id是其中的关键部分,因为当我投票两张照片时,我会使用特定的id来决定投票的对象。让我们来讨论这个问题。如果我使用SESSION将值传递给“Ajax.php”,其中包括API的post函数,它将直接投票给数据库的最后一个轮询元素,无论我单击哪个元素 所以,问题是>>>如何通过单击按钮将特定ID从jQuery
<?php
session_start();
$user_id = $_SESSION['user_id'];
//$polls_id = $_SESSION['polls_id'];
if($_GET) {
if(isset($_GET['insert'])) {
vote_poll1($user_id, $polls_id);
}
elseif(isset($_GET['select'])) {
vote_poll2($user_id, $polls_id);
}
}
function vote_poll1($user_id, $polls_id){
$postdata = http_build_query(
array(
'user_id' => $user_id,
'poll_id' => $polls_id,
'vote_value' => '1'
)
);
$opts = array(
'http' => array(
'method' => 'POST',
'header' => 'Content-type: application/x-www-form-urlencoded',
'content' => $postdata
)
);
$context = stream_context_create($opts);
$result = file_get_contents('http://sitename.herokuapp.com/api/v1/polls/'. $polls_id . '/castvote', false, $context);
差不多。另外,我会创建单独的jQuery文件,这些文件可以包含在内,而不是在First.php中执行echo,因为这非常容易出错。您可以通过$('#button_target').prop(“id”)代码>或使用JS函数语法或任何方法传递它。如果您谈论的是表单数据,最简单的方法是使用var formdata=$(“#formtarget”).serialize()之类的东西代码>@JayBlanchard先生,我添加了$polls\u id=$\u POST['id'];进入我的Ajax.php文件。我还从中删除了“id”标记,并在该行上方添加了polls_id>。然而,这仍然不起作用。你能和我分享一下你对我的代码的经验吗?这是非常重要的。另外,我会创建单独的jQuery文件,这些文件可以包含在内,而不是在First.php中执行echo,因为这非常容易出错。您可以通过$('#button_target').prop(“id”)代码>或使用JS函数语法或任何方法传递它。如果您谈论的是表单数据,最简单的方法是使用var formdata=$(“#formtarget”).serialize()之类的东西代码>@JayBlanchard先生,我添加了$polls\u id=$\u POST['id'];进入我的Ajax.php文件。我还从中删除了“id”标记,并在该行上方添加了polls_id>。然而,这仍然不起作用。你能分享你对我的代码的经验吗?
public function getButtons() {
//$_SESSION['polls_id'] = $this->polls_id;
//echo $_SESSION['polls_id'];
echo $this->polls_id;
echo '<script src="https://code.jquery.com/jquery-2.0.0.js"></script>';
echo '<form action="ajax.php" id=' . $this->polls_id . '>';
echo "\t";
echo '<input type="submit" class="button" name="insert" value="Click here to vote" />';
echo "\t\t\t\t\t\t ";
echo '<input type="submit" class="button" name="select" value="Click here to vote" />';
echo "</form>";
echo "<script>";
echo "$(document).ready(function(){";
echo "$('.button').click(function(){";
echo "var clickBtnValue = $(this).val();";
echo "var idValue = $(this).attr('id')";
echo "var ajaxurl = 'ajax.php'";
//echo "var id = " . $this->polls_id;
echo "data = {'action': clickBtnValue, 'id': idValue};";
echo "$.post(ajaxurl, data, function (response) {";
echo 'alert("Action performed successfully");';
echo "});";
echo "});";
echo "});";
echo "</script>";
}
}