将值从javascript传递给php

时间:2013-10-22 00:04:54

标签: javascript php jquery

HTML CODE

<form action="phpfile.php" method="post">
    <input type="button" id="id1">
    <input type="button" id="id2">
    <input type="submit">
</form>

<div id="result"></div>

JAVASCRIPT CODE

qty1=0;
qty2=0;
totalqty=0;


    $("#id1").click(function(){

        qty1=qty1+1;
        totalqty=totalqty+1;
        $("#result").html(qty1);
    });

    $("#id2").click(function(){
        qty2=qty2+1;
        totalqty=totalqty+1;
        $("#result").html(qty2);
    });

点击提交按钮后,您能否给我一些关于如何将qty1,qty2和totalqty发送到我的php文件的提示。在我将它发送到php文件之前,我需要先检查按钮是否已被点击。如果没有,则不会将任何数量发送到phpfile。我需要根据您点击按钮的次数发送确切的数量。

4 个答案:

答案 0 :(得分:1)

最简单的解决方案是将qty添加为<input type="hidden" id="qty1" name="qty1" />到您的表单。它们将作为变量隐藏,并将作为表单字段发送到服务器。要从Javascript访问其值,请使用$("#qty1").value()

答案 1 :(得分:1)

您正在寻找名为AJAX的内容。

使用jQuery库很容易实现,但也可以使用常规JavaScript。

如果您选择使用jQuery实现,那么您可以查看documentation

这是一个基本的例子:

$.ajax({
    type : 'post',
    url : 'target.php',
    dataType : 'json',
    data  : {
       'foo' : 10
   }
}).done(function()
{
    $(this).addClass("done");
});

然后使用后端来处理响应,例如假设您发送一个参数对象,其中一个键名为foo且值为10,那么您可以像这样获取它(如果代码是PHP):

$foo = isset($_POST['foo']) ? $_POST['foo'] : "";

使用ternary operator

答案 2 :(得分:1)

尝试使用jquery $.ajax$.post函数:

qty1=0;
qty2=0;
totalqty=0;

$("#id1").click(function(){
    qty1=qty1+1;
    totalqty=totalqty+1;
    $("#result").html(qty1);

    get_values(qty1);
});

$("#id2").click(function(){
    qty2=qty2+1;
    totalqty=totalqty+1;
    $("#result").html(qty2);

    get_values(qty2);
});

function get_values(qty_val) {
    $.post(
        'get_values.php', // url of your php who will receive the values
        { post_variable_name: qty_val }, // your post variables here
        function(data) {
            // call back function
            $("#result").html(data); // see what does your get_value.php echoes via html
            console.log(data); // see it via console in inspect element
        }
    );
}

并且在你的php中将收到值,只需使用$ _POST:

进行检索
<?php
$qty_val = '';
if(isset($_POST['post_variable_name'])) {
   $qty_val = $_POST['post_variable_name'];
   echo $qty_val;
}
?>

答案 3 :(得分:0)

HTML

<form>
    <input name="id1" type="button" id="id1" />
    <input name="id2" type="button" id="id2" />
    <input type="submit" />
</form>
<div id="status"></div>

JS

qty1=0;
qty2=0;
totalqty=0;

$("#id1").click(function(){
    qty1=qty1+1;
    totalqty=totalqty+1;
    $("#result").html(qty1);
});

$("#id2").click(function(){
    qty2=qty2+1;
    totalqty=totalqty+1;
    $("#result").html(qty2);
});


$( "form" ).submit(function( event ) {
    // prevent the default event
    event.preventDefault();

    // check first if the totalqty. You can add more checks here
    if ( totalqty === 0 ) {

        // usually show some kind of error message here
        alert('No quantity selected!');

        // this prevents the form from submitting
        return false;
    } else {
        $.ajax({
            type: 'post',
            url: 'phpfile.php',
            dataType: 'json',
            data: {
                quantity1: qty1,
                quantity2: qty2,
                totalQuantity: totalqty
            }
        }).done(function(data) {
            console.log(data);

            alert( "success" );

            $('#status').html("Successfully saved!");
        }).fail(function() {
            console.log(data);

            alert( "error" );

            $('#status').html("Successfully saved!");
        });
    }
});

PHP

$qty1 = isset($_POST['quantity1']) ? $_POST['quantity1'] : "";
$qty2 = isset($_POST['quantity2']) ? $_POST['quantity2'] : "";
$total = isset($_POST['totalQuantity']) ? $_POST['totalQuantity'] : "";

抱歉,我无法测试,但它应该可以正常工作

有关详细信息,您可以查看jQuery Learning Center - Ajax,其中您可以找到使用ajax和表单的有用示例。