Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/243.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
Php 如何通过单击jQuery中具有给定ID的按钮来使用Ajax调用函数_Php_Jquery_Ajax - Fatal编程技术网

Php 如何通过单击jQuery中具有给定ID的按钮来使用Ajax调用函数

Php 如何通过单击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

我正试图建立团队项目的网站。基本上,这个网站从中获取一些数据。我使用HTML、PHP、jQuery和Ajax为我的网站提供一些功能。我用PHP创建了一个对象,并使用for循环打印功能poll_id是其中的关键部分,因为当我投票两张照片时,我会使用特定的id来决定投票的对象。让我们来讨论这个问题。如果我使用SESSION将值传递给“Ajax.php”,其中包括API的post函数,它将直接投票给数据库的最后一个轮询元素,无论我单击哪个元素

所以,问题是>>>如何通过单击按钮将特定ID从jQuery拉到Ajax

这里有一些代码来澄清我的问题

来自Ajax.php

<?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>";
        } 
    }