1

代码

<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代码

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

4 回答 4

1

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

于 2013-10-22T00:10:06.570 回答
1

您正在寻找一种叫做AJAX的东西。

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

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

这是一个基本示例:

$.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'] : "";

使用三元运算符

于 2013-10-22T00:11:08.507 回答
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;
}
?>
于 2013-10-22T00:11:13.610 回答
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 学习中心 - Ajax,在那里您可以找到使用 ajax 和表单的有用示例。

于 2013-10-22T00:44:03.507 回答