Php 每次我发送表单时,表单都会清除数组
我有一个带有2个选择项的表单,当您发送第一个选择项时,第二个选择项使用查询对在我的oracle bd上调用的值进行收费,然后当我发送第二个选择项时,它生成一个带有复选框的表:Php 每次我发送表单时,表单都会清除数组,php,html,mysql,Php,Html,Mysql,我有一个带有2个选择项的表单,当您发送第一个选择项时,第二个选择项使用查询对在我的oracle bd上调用的值进行收费,然后当我发送第二个选择项时,它生成一个带有复选框的表: if(isset($idTActi)){ $stallTableTarifas=oci_parse($conn, "SELECT TARIFAS.ID, TARIFAS.ID_TIPO_ACTIVIDAD, TARIFAS.TIPO, TIPO_ACTIVIDAD.TEMPS_KM, TARIFAS.PRECIO
if(isset($idTActi)){
$stallTableTarifas=oci_parse($conn, "SELECT TARIFAS.ID, TARIFAS.ID_TIPO_ACTIVIDAD, TARIFAS.TIPO, TIPO_ACTIVIDAD.TEMPS_KM, TARIFAS.PRECIO
FROM TARIFAS, TIPO_ACTIVIDAD
WHERE TARIFAS.ID_TIPO_ACTIVIDAD = TIPO_ACTIVIDAD.ID
AND TARIFAS.ID_TIPO_ACTIVIDAD = $idTActi");
oci_execute($stallTableTarifas);
echo "<div class='divPrecios'>";
echo "<table>";
echo "<tr class='tabPreciosTitles'>";
echo "<td>Tipus Tarifa</td>
<td>Temps/Km</td>
<td>Preu</td>
<td><input type='submit' class='carrito' value=''></td>";
echo "</tr>";
while (($row=oci_fetch_array($stallTableTarifas,OCI_BOTH))!=false){
echo "<tr>";
echo "<td>".$row['TIPO']."</td>";
echo "<td>".$row['TEMPS_KM']."</td>";
echo "<td>".$row['PRECIO']."</td>";
echo "<td><input type='checkbox' name='checkbox[]' value='".$row['ID']."'/></td>";
echo "</tr>";
}
echo "</table>";
echo "</div>";
}
echo "</form>";
if(isset($IDTACI)){
$stallTableTarifas=oci_parse($conn,“选择TARIFAS.ID、TARIFAS.ID、TIPO_ACTIVIDAD、TARIFAS.TIPO、TIPO_ACTIVIDAD.TEMPS_KM、TARIFAS.PRECIO
来自TIPO_ACTIVIDAD的TARIFAS
其中TARIFAS.ID\u TIPO\u ACTIVIDAD=TIPO\u ACTIVIDAD.ID
和TARIFAS.ID_TIPO_ACTIVIDAD=$idtaci”);
oci_execute($stallTableTarifas);
回声“;
回声“;
回声“;
echo“Tipus Tarifa”
Temps/Km
普雷乌
";
回声“;
while($row=oci\u fetch\u数组($stallTableTarifas,oci\u两者))!=false){
回声“;
回显“$row['TIPO']”;
回声“$row['TEMPS_KM'”;
回显“$row['PRECIO']”;
回声“;
回声“;
}
回声“;
回声“;
}
回声“;
变量$IDTACI是我从第二次选择返回的id,因此当我单击复选框并在名为class='carrito'的按钮上发送它时,这是我在css上生成的精灵,我在底部看到另一个表,其中包含我在上一个表中选择的信息:
echo "<div class='divPrecios'>";
echo "<table>";
echo "<tr class='tabPreciosTitles'>";
echo "<td>Nom Activitat</td>
<td>Nom Tipus Activitat</td>
<td>Tipus Tarifa</td>
<td>Temps/km</td>
<td>Preu</td>";
echo "</tr>";
foreach($_POST['checkbox'] as $item){
$stallTableCarrito=oci_parse($conn, "SELECT ACTIVIDAD.NOM AS NOM_ACTIVIDAD, TIPO_ACTIVIDAD.NOM AS NOM_TACTIVIDAD, TARIFAS.TIPO, TIPO_ACTIVIDAD.TEMPS_KM, TARIFAS.PRECIO
FROM TARIFAS, ACTIVIDAD, TIPO_ACTIVIDAD
WHERE TARIFAS.ID = $item
AND TARIFAS.ID_TIPO_ACTIVIDAD = TIPO_ACTIVIDAD.ID
AND TIPO_ACTIVIDAD.ID_ACTIVIDAD = ACTIVIDAD.ID");
oci_execute($stallTableCarrito);
$array=array(
0=>array(),
1=>array(),
2=>array(),
3=>array(),
4=>array()
);
while (($row=oci_fetch_array($stallTableCarrito,OCI_BOTH))!=false){
array_push($array[0],$row['NOM_ACTIVIDAD']);
array_push($array[1],$row['NOM_TACTIVIDAD']);
array_push($array[2],$row['TIPO']);
array_push($array[3],$row['TEMPS_KM']);
array_push($array[4],$row['PRECIO']);
}
for ($x=0;$x<count($array[0]);$x++){
echo "<tr>";
echo " <td>".$array[0][$x]."</td>";
echo " <td>".$array[1][$x]."</td>";
echo " <td>".$array[2][$x]."</td>";
echo " <td>".$array[3][$x]."</td>";
echo " <td>".$array[4][$x]."</td>";
echo " <td><input type='submit' class='carritoElim' value=''></td>";
echo "</tr>";
}
}
echo "</table>";
echo "</div>";
echo”“;
回声“;
回声“;
echo“Nom Activitat”
名为Tipus Activitat
塔里法提布斯酒店
Temps/km
Preu”;
回声“;
foreach($_POST['checkbox']作为$item){
$stallTableCarrito=oci_parse($conn,“选择ACTIVIDAD.NOM作为NOM_ACTIVIDAD,选择TIPO_ACTIVIDAD.NOM作为NOM_TACTIVIDAD,选择TARIFAS.TIPO,选择TIPO_ACTIVIDAD.TEMPS_KM,选择TARIFAS.PRECIO
来自塔里法斯、阿维迪达、蒂波乌阿维迪达
其中TARIFAS.ID=$item
和TARIFAS.ID_TIPO_ACTIVIDAD=TIPO_ACTIVIDAD.ID
和TIPO_ACTIVIDAD.ID_ACTIVIDAD=ACTIVIDAD.ID“;
保监处执行($stallTableCarrito);
$array=array(
0=>array(),
1=>array(),
2=>array(),
3=>array(),
4=>array()
);
while(($row=oci\u fetch\u数组($stallTableCarrito,oci\u两者))!=false){
数组推送($array[0],$row['NOM_ACTIVIDAD']);
数组推送($array[1],$row['NOM_TACTIVIDAD']);
数组推送($array[2],$row['TIPO']);
数组推送($array[3],$row['TEMPS_KM');
数组推送($array[4],$row['PRECIO']);
}
对于($x=0;$x在代码的第一部分中,表单标记是否打开?(我想如果这个有效的话,它是打开的)
在第二部分中,您的
标记是否在表单中?
因为如果不是这样,你会过得很不愉快;-)
也许在最后一个表单中,您应该使用与第一个表单相同的名称和相同的值生成隐藏输入
如果您不这样做,我想您的变量$idtaci将不再被设置,并且它将不会成功进行第一次测试If(isset($idtaci))
。这可能是您获得清除页面的原因
如果在同一个php页面中有一个多步骤表单,对于此类html代码:
<form method=POST url="myURL">
<select name="select1">[...]</select>
<select name="select2">[...]</select>
<!-- VARIOUS PART : may not be displayed -->
<div id="checkboxes">
<input type="hidden" name="boxStep" value="1"/>
<input type="checkbox" name="cb1" value="1"/>
[...]
</div>
<!-- END OF VARIOUS PART -->
</form>
ApoloApolo,首先感谢您的回复,在第二部分,输入尚未实现:),只显示精灵,我稍后生成代码,第二个带有复选框的表没有清除,只有带有数组的变量我很难理解代码的工作方式。您有两个选择,以相同的形式,b提交操作的行为应该根据第二个选择的内容而改变?对,第二个选择根据所选内容返回一个id,然后我使用返回的id执行查询,打印第一个带有复选框的表单,最后一个表单打印复选框上所选选项引用的所有信息:Dsorry for answer太晚了,但是当你发表评论时,我被解雇了,谢谢,谢谢,我以后会实施它,当一切都完成或者可能有另一个错误时,我会告诉你一些事情,谢谢:D
// if post request
if (isset($_POST)) {
if (isset($_POST['boxStep'])) {
// behavior when checkboxes values are sent
} else {
if (isset($_POST['select2'])) {
// behavior when second select is filled
// display "VARIOUS PART"
} else {
// behavior when only first select is filled
// Do not display "VARIOUS PART"
}
}
} else {
// default behavior (no select filled)
// Do not display "VARIOUS PART"
}