Javascript按钮单击在同一页面上更改/创建PHP变量

时间:2017-05-14 23:05:44

标签: javascript php html ajax cookies

我搜索过去一小时的stackoverflow并找到了类似的问题,但尝试解决方案只给了我错误 - 可能是因为我试图将它加载到同一页面上。

我尝试将值保存到JS中的cookie然后将其加载到php中,也尝试通过ajax等。

从我所读到的内容不能仅仅在PHP内部进行,因为PHP是服务器端,而Javascript是浏览器方面。

我目前有一个.html页面,其中包含通过POST发送值的表单:

form.html

<form id="calc" form name="calculator" method="post" action="/calculate.php">

解决方案不是表单,我不能有隐藏字段,因为我需要用户输入。我可以在形式是一个收音机盒然后以那种方式获得价值,但这不是我的问题。我的问题是如何在表单重定向到calculate.php的页面上获取用户的输入并将其转换为php:

calculate.php

<?php 
if(isset($_POST['submit'])){
    $x= $_POST['value']; 

echo "your something:";
echo $x;
?>

Click button below for option one to do this, or click two for that, or three for something else...
<button id="one"> one </button>

<script>
$(document).ready(
    function() {
        $("#one").click(function() {
            make php value 1
});
</script>

use php value from click

因此用户已经点击了提交。然后使用他们的输入重定向到.php页面,然后他们可以选择按钮1,2或3,例如通过compute.php上的javascript NOT 表单。

我的问题是我需要在同一页面上知道 - calculate.php,在php中点击了哪个按钮。因此我可以使用他们的输入并根据哪个按钮执行不同的操作。

是否可以通过按钮点击calculate.php本身获取一个值来设置或创建一个值javascript按钮在同一页面上生成一个php值?是否需要通过ajax从external.php页面加载?还有其他办法吗?

1 个答案:

答案 0 :(得分:0)

PHP选项:

<?php 
if(isset($_POST['submit'])){
    $x= (isset($_POST['one'])) ? $_POST['one'] : '';
    $y = (isset($_POST['two'])) ? $_POST['two'] : '';
    $z = (isset($_POST['three'])) ? $_POST['three'] : ''; 

echo "your something:";
echo $x;
echo $y;
echo $z;
?>

<form name="calculator" method="post">
<INPUT TYPE="RADIO" NAME="one" VALUE="1"> ONE
<INPUT TYPE="RADIO" NAME="two" VALUE="2"> TWO
<INPUT TYPE="RADIO" NAME="three" VALUE="3"> THREE
<input type="submit" value="Submit">
</form>

JS模式:

if(isset($_POST)){
    $value= (isset($_POST['value'])) ? $_POST['value'] : '';
    $previous = (isset($_POST['previous'])) ? $_POST['previous'] : '';
    //play with value and previous one
     $x = //your algorithm;

echo "your something:";
echo $x;
?>

<form name="calculator" method="post">
<button type="button" value='1'>ONE</button>
<button type="button" value='2'>TWO</button>
<button type="button" value='3'>THREE</button>
<input name='value' type='hidden' value=''>
<input name='previous' type='hidden' value='<?= (isset($x)) ? $x : ''?>'>
</form>

<script>
$(document).ready(
    function() {
        $("button").click(function() {
            $('input[name=value]').val($(this).val());
            $('form').submit();
});
</script>

use php value from click