如何将值从jQuery传递给PHP

时间:2014-11-09 22:14:59

标签: php jquery html

当我点击它时,我有一个简单的按钮我希望从jQuery传递一个值并将其发送到PHP文件,以便我可以执行它。因此,当单击按钮触发onclick事件时,它会发送数字" 1"到jQuery代码,反过来jQuery应该发送" 1"到PHP函数displayRecords," 1"应该回应:)。如果你能提供帮助,我们将不胜感激。

HTML

<input type="button" value = "Click Me!" 
    id = "btn" nam = "btn" onClick="displayRecord(1)">

jQuery

<script>
    function displayRecord(num) {
        $.ajax({
            type: 'post',
            url: "display.php",
            data: { num: num }
        });
    };
</script>

PHP

<?php
    function displayRecord($num) {
        echo $num;
    }
?>

6 个答案:

答案 0 :(得分:0)

你不能只调用那样的变量

function displayRecord($num){

    echo $num;

    }

这只是一个功能退化。你没有用任何东西来称呼它。添加此项以使用POST数据调用您的函数

displayRecord($_POST['num']);

答案 1 :(得分:0)

你需要一个表格和输入值..

<form id="btn">
    <input type="hidden" value = "Click Me!" 
       nam = "btn"> 
<button type="submit">Submit this form</button>  
</form>

从php文件回显这样做:

指定JSON标题&amp;创建数组(jSon只读取数组);

header("content-type:application/json");

if(!empty($_POST['num'])){

$result = array(array("num" => $num));

    echo json_encode($result);  }

在Ajax ..

 var form = $("#btn");
    form .submit(function (ev) {
        $.ajax({
        type: 'POST',
        dataType: 'json',
        url: "display.php",
        data: { num: num },
        success: function( json ) {
            $.each(json, function(i, item) {
    alert('+item.num+');
                   })
              },

      error: function(xhr, desc, err) {
        console.log(xhr + "\n" + err);} 
              });

        ev.preventDefault();
        });

答案 2 :(得分:0)

调用此页面:index.php

<head>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
    <script>
        function displayRecord(num){
            txt=num;
            $.post("demo.php",{num:txt},function(result){
                $("#displayRecord").html(result);
            });
        }
    </script>
</head>
<body>
    <input type="button" value="Click Me!" id="btn" name="btn" onClick="displayRecord(1)">
    <div id="displayRecord"></div>
</body>

并将此页面称为:demo.php

 <?php echo $_POST['num']; ?>

答案 3 :(得分:0)

首先注意到你需要在输入id周围放置撇号,这可能会导致意外结果,具体取决于你正在做什么。

这是所需的HTML。

<form id="form">
<input type="button" value="Click Me!" id="btn" name="btn" type="submit">
</form>

将数据从AJAX发送到PHP。

$(function() {
    $('#form').on('submit, function() {
        $.ajax({
            type: 'POST',
            dataType: 'json',
            url: 'display.php',
            data: { num: num },
            success: function(message, data) {
                alert(message);
                $(data)...//ready to use
            }
        });
    });
});

将数据从PHP发送回JSON格式的AJAX。

<?php
    if ($_POST['num']) {
        $num = $_POST['num'];
        echo json_encode(array('message' => 'Completed!', 'data' => $num));
    }
?>

答案 4 :(得分:0)

你缺少两件事。 在php中,你实际上并没有调用函数,而在js中你忽略了返回的数据。

修复:

的jQuery

<script>
    function displayRecord(num) {
        $.ajax({
            type: 'post',
            //dataType: 'json',  <--you are not currently sending json, so remove this
            url: "display.php",
            data: { num: num },
            //do something with the result of the ajax call
            success:function(data){
                alert(data);
            }
        });
    };
</script>

PHP

<?php
    function displayRecord($num) {
        echo $num;
    }
    //call the function, with the posted data
    displayRecord($_POST['num']);
?>

答案 5 :(得分:0)

因为你已经在使用jquery ajax,为什么不使用一些jquery绑定呢,

<input type="button" value = "Click Me!" 
    id = "sendbtn" >

<script>
$(document).ready(function(){
    var display = function (e) {
        e.preventDefault();
        var num = $("#yourtextinputidhere").val();
        $.ajax({
            type: 'post',
            dataType: 'json',
            url: "display.php",
            data: { num: num }
        });
    }
    $("#sendbtn").on('click', display); //note display is set as a function above
});
</script>

<?php //display.php
    function displayRecord($num){
        //Do what needs to be done here
    }

    displayRecord($_POST['num']);
?>