希望有人可以指导我为什么我的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";
答案 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...
}