1

我正在尝试通过单击 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。

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

4

3 回答 3

6

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

于 2013-08-13T06:11:48.453 回答
1

当您使用适当的值设置表单控件时,不需要额外的变量

$('#dialogtype').val("addquiz");

表单将收到此值:

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

现在取决于您的 php 脚本 (createplay.php) 是 $_POST['dialogtype'] == 'addquiz' ) 还是其他值并按预期​​处理数据

于 2013-08-13T06:20:38.810 回答
0

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

于 2013-08-13T06:12:44.810 回答