Php脚本不捕获输入字段

时间:2014-07-28 01:50:36

标签: php

希望有人可以指导我为什么我的PHP脚本不能捕获我的输入字段?我的代码的片段和相关的 Php位在下面。我在其他形式中使用的此代码的所有其他方面都运行良好。注意,当前的命名协议在我的javascript中用于计算总计,这也很有效。不知怎的,Php脚本可能不喜欢我的命名协议??

Html代码;

 <TD ALIGN=CENTER><INPUT TYPE=Hidden NAME=Product_1_value    VALUE="10.00">10.00</TD>
    <TD ALIGN=CENTER><SELECT NAME=Product_1_qty  onChange=FormatFields()><option      value=0>0<option value=1>1<option value=2>2<option value=3>3<option value=4>4<option value=5>5</SELECT></TD>
    <TD ALIGN=CENTER><INPUT TYPE=Text   NAME=Product_1_subtotal VALUE="0.00"    SIZE=8 ></TD>
    <TD ALIGN=CENTER><INPUT TYPE=Hidden NAME=Product_1     VALUE="0,0"    SIZE=10></TD>

Php代码;

if(!isset($_POST['Product_1_qty']) && $_POST['Product_1_qty'] !=""||

        !isset($_POST['Product_1_subtotal']) && $_POST['Product_1_subtotal'] !=""||


        $product1 = $_POST['Product_1_qty'];

        $email_message .= "...xxxx...: ".clean_string($product1)."\n";

2 个答案:

答案 0 :(得分:0)

对属性使用小写字母并用双引号括起来。这将使您的HTML在语法上正确。

更改为:

<td align="center"><input type="hidden" name="Product_1_value" value="10.00" />10.00</td>
<td align="center">
<select name="Product_1_qty"  onChange="FormatFields()">
    <option value="0">0</option>
    <option value="1">1</option>
    <option value="2">2</option>
    <option value="3">3</option>
    <option value="4">4</option>
    <option value="5">5</option>
</select>
</td>
<td align="center"><input type="text"  name="Product_1_subtotal" value="0.00" size="8" /></td>
<td align="center"><input type="hidden" name="Product_1" value="0,0" size="10" /></td>

您需要关闭if声明。此外,您最后有一个||,不需要。

试试这个:

if((!isset($_POST['Product_1_qty']) && $_POST['Product_1_qty'] !="") || (!isset($_POST['Product_1_subtotal']) && $_POST['Product_1_subtotal'] !="")) {
        $product1 = $_POST['Product_1_qty'];
        $email_message .= "...xxxx...: ".clean_string($product1)."\n";
}

其他一些事情:您可以通过结束括号中的input来关闭/代码。有关详细信息,请参阅上面的HTML

此外,您的HTML属性之间还有一些额外的间距。请删除它们以使您的代码看起来更干净!

答案 1 :(得分:0)

首先正确清理HTML标记。

input元素保持为小写,并确保属性包含在"中。

<td align="center"><input type="hidden" name="Product_1_value"    value="10.00">10.00</TD>
....etc

完成后,请检查以确保您的变量实际上已发布到您的php脚本。

<?php print_r($_POST); ?>

您希望在那里的字段,实际上在那里吗?

如果是,请清理if阻止。

if (!isset($_POST['Product_1_qty']) && $_POST['Product_1_qty'] != "" || !isset($_POST['Product_1_subtotal']) && $_POST['Product_1_subtotal'] != "") {
    // assign variables here...
}

您有一个尾随||(或)会导致问题,因此已将其删除,并且if块已正确关闭。


或者,您可以使用empty()确保值不= ""。这使得if块看起来与此类似:

if (!isset($_POST['Product_1_qty']) && !empty($_POST['Product_1_qty']) || !isset($_POST['Product_1_subtotal']) && !empty($_POST['Product_1_subtotal'])) {
    // assign variables here...
}