2016-07-08 63 views
0

我想做一个HTML/PHP电子邮件的形式,其中包括多个文本字段,4个切换功能的按钮,并提交按钮。点击后,我已经成功地获得按钮来改变状态,但我无法弄清楚如何检查按钮是否实际上是在PHP中按下的。我如何使切换功能的HTML按钮张贴到PHP

这是我所有按钮的html代码。它们被包裹在一个包含提交按钮和其他文本字段的表单中。我也试着改变按钮标签来输入标签。

<section> 
    <button class="btn service-button" name="app" value="Web App" type="button">Web App</button> 
    <button class="btn service-button" name="brand" value="Branding" type="button">Branding</button> 
    <button class="btn service-button" name="design" value="Web Design" type="button">Web Design</button> 
    <button class="btn service-button" name="other" value="Other" type="button">Other</button> 
</section> 

我只是按钮的PHP:

if(isset($_POST['app'])) { 
    $service .= $_POST['app']; 
} 
if(isset($_POST['brand'])) { 
    $service .= ", " . $_POST['brand']; 
} 
if(isset($_POST['design'])) { 
    $service .= ", " . $_POST['design']; 
} 
if(isset($_POST['other'])) { 
    $service .= ", " . $_POST['other']; 
} 

我尝试了vardump($ _ POST);但他们显然甚至没有添加到$ _POST。 任何想法我可以尝试让他们实际提交数据到$ _POST?我想这样做是这样的:

if(class_exists('active-button')) { 
    $service .= //Set data here somehow. 
} 

,但我不能肯定我会怎么做,既然有四个不同的按钮和它们的任意组合可以选择。

而且,应该不会影响任何东西,我不觉得,但这里是我的jQuery改变的按钮:

$(".btn").click(function() { 
    //Add/remove active-button and service-button. Replaces one with the 
    //other depending on the current state. 
    $(this).toggleClass("active-button").toggleClass("service-button"); 
}); 

主动式按键和服务按键类的CSS只是使用将按钮的样式更改为

+1

为什么不使用单选按钮来完成这项工作? – Iceman

+0

不知道如果也许我只是误导,但我想我的按钮样式的某种方式,我一直无法用单选按钮做到这一点。这是他们目前的样子: http://puu.sh/pUgU3/05c17e88cc.png http://puu.sh/pUgUI/6df75bebf2.png –

+0

你可以像你想要的样式的单选按钮,但一个javascript基于解决方案也是可能的。 – Iceman

回答

1

添加隐藏输入,并且每当您单击按钮时更改隐藏值并提交隐藏字段。

HTML

<section> 
<input class="selected_button" name="selected_button" value="" type="hidden"> 
    <button class="btn service-button" name="app" value="Web App" type="button">Web App</button> 
    <button class="btn service-button" name="brand" value="Branding" type="button">Branding</button> 
    <button class="btn service-button" name="design" value="Web Design" type="button">Web Design</button> 
    <button class="btn service-button" name="other" value="Other" type="button">Other</button> 
</section> 

jQuery的

//On button click 
$(".btn").click(function() { 
    //The string to add to the selected-button value 
    var toAdd = $(this).attr("value"); 
    //Add/remove active-button and service-button. Replaces one with the 
    //other depending on the current state. 
    $(this).toggleClass("active-button").toggleClass("service-button"); 
    //Checks if the button has already been added in case the user deselects the button 
    if($(".selected_button").val().indexOf(toAdd) >= 0) { 
     //Removes the comma and text 
     $(".selected_button").val($(".selected_button").val().replace((', ' + toAdd), '')); 
    //If the button is being added for the first time 
    } else { 
     //Adds the comma and text 
     $(".selected_button").val($(".selected_button").val() + ", " + toAdd); 
    } 
}); 

PHP

<?php 
$selected = $_POST['selected_button']; 
if(isset($_POST['selected_button'])) { 
    $service .= $selected; 
} 
?> 

希望这将有助于

或 注:

you use radio buttons by using css style you can display like button 
+0

这正是我所期待的。非常感谢你。如果再次点击该按钮,我做了一些更改以使其删除属性值。我会暂时编辑你的文章给别人,与我有同样的问题。 –