如何通过单击HTML按钮更改PHP变量?

时间:2013-08-13 06:03:18

标签: php javascript html

我正在尝试使用HTML按钮单击或其他适当的方式更改PHP变量。

不幸的是,我无法在此处发布我的大部分代码,但我会尽可能多地提供。

首先,我的网站上有两个按钮。它们各自调用两个不同的javascript函数,但它们加载相同的HTML表单。然后将表单提交到MySQL数据库,具体取决于在开头单击的按钮。

我希望它们加载不同的表单,而不是让两个按钮加载相同的表单。我想通过在用户点击任一按钮时保存PHP变量来实现这一点。

我在网上搜索了很多,但我发现我的问题没有直接答案。

以下是一个小例子:

用于添加测验的HTML按钮:

<h2>
<button id='opener' class='roundButton add' value='' onClick="OpenNewQuizDialog();">
</button>
Create Quiz
</h2>

用于添加演示文稿的HTML按钮:

<h2>
<button id='opener' class='roundButton add' value='' onClick="OpenNewPresDialog();
</button>
Add Presentation
</h2>

两个Javascript函数:

function OpenNewQuizDialog()
{
    $( "#dialog" ).dialog( "open" );
    $('#dialog').dialog({title:"Create Quiz"});
    $('#dialogtype').val("addquiz");
}

function OpenNewPresDialog()
{
    $( "#dialog" ).dialog( "open" );
    $('#dialog').dialog({title:"Create Presentation"});
    $('#dialogtype').val("addpres");
}

正在打开的HTML表单:

<div id="dialog" title="Edit Settings">
        <form name="editForm" method="post" action="createplay.php">
        <input type=hidden id='dialogid' name='dialogid' value=''>
        <input type=hidden id='dialogtype' name='dialogtype' value=''>
        <input type=hidden id='uid' name='uid' value='<?php echo $userid; ?>'>
            <div>
            Name: <input type='text' id='nameEdit' name='nameEdit' value=''>
        </div>
        <div>
            Data: <textarea id='textEdit' name='textEdit' row='10' cols='50'></textarea>
        </div>
        <input type="submit" class="roundButton upload" value="" />
        </form>
    </div>

我尝试过:

我尝试将以下内容添加到HTML按钮中的onClick部分:

quiz button: <?php $create_type = 'createquiz' ?>
presentation button: <?php $create_type = 'createpres' ?>

然后我尝试制作一个'if'语句来查看单击了哪个按钮,这样我就可以显示相应的表单。虽然,$ create_type的值始终是'createpres',因为它在页面上最后被调用。这就像调用PHP一样,即使没有调用HTML onClick。

有没有更好的方法来解决这个问题?

3 个答案:

答案 0 :(得分:6)

PHP是服务器端语言,而Javascript在客户端运行。这意味着它们都是分开运行的。但如果您希望它们一起处理,例如使用javascript显示数据,则必须使用AJAX

答案 1 :(得分:1)

在设置具有适当值

的表单控件时,不需要额外的变量
$('#dialogtype').val("addquiz");

表单将收到此值:

<input type=hidden id='dialogtype' name='dialogtype' value=''>

现在由你的php脚本(createplay.php)决定$ _POST ['dialogtype'] =='addquiz')或其他值并按预期​​处理数据

答案 2 :(得分:0)

你不能通过html创建一个php变量,因为php是服务器端而html是客户端。 :)