复选框条件无法正常工作

checkboxes condition is not working properly

我正在从这个函数获取数据,现在我想根据我的条件选中复选框,我的条件是如果我从数据库中获得值 roro 如果我得到 Vessel, Containerized 则不会检查是的将被检查。

$getDataForPDF = getDataForPDF($bookingsId, $bookingsLettersDockReceiptId);
if($getDataForPDF["typeOfMove"] == "Vessel, Containerized") {
     $checkedYes = "checked";
} if($getDataForPDF["typeOfMove"] == "roro") {
     $checkedNo = "checked";
}

并且我在复选框中使用了这个条件

$html .= '<tr>';
     $html .= '<td colspan="3">';
          $html .= '<small>11. TYPE OF MOVE</small> <br />';
          $html .= $getDataForPDF["typeOfMove"];
     $html .= '</td>';

     $html .= '<td colspan="2">';
          $html .= '<small>11a. CONTAINERIZED &nbsp;&nbsp;&nbsp; (Vessel only)</small> <br/>';
          $html .= '<input type="checkbox" checked="'.$checkedYes.'" name="yes"> Yes &nbsp;&nbsp;&nbsp; <input type="checkbox" checked="'.$checkedNo.'" name="no"> No';
      $html .= '</td>';
$html .= '</tr>';

我的条件是正确的,但不适用于 checked="checked" 条件。我的代码有什么问题?

你能试试吗?

$getDataForPDF = getDataForPDF($bookingsId, $bookingsLettersDockReceiptId);
if($getDataForPDF["typeOfMove"] == "Vessel, Containerized") {
     $checkedYes = "checked='checked'";
} elseif($getDataForPDF["typeOfMove"] == "roro") {
     $checkedNo = "checked='checked'";
}

连同:

$html .= '<input type="checkbox" '.$checkedYes.' name="yes"> Yes &nbsp;&nbsp;&nbsp; <input type="checkbox" '.$checkedNo.' name="no"> No';

我不确定它是否能解决您的问题,但这就是您要执行的操作,以便根据您的数据库信息选中相应的复选框。

有帮助吗?

checked 属性 很简单,只要在标签末尾加上checked即可。例如,<input type="checkbox" name="yes" checked> 将是一个复选框,如果没有选中,则取消选中。

以下代码应该可以为您解决问题:

$checkedYes = '';
$checkedNo = '';
$getDataForPDF = getDataForPDF($bookingsId, $bookingsLettersDockReceiptId);
if($getDataForPDF["typeOfMove"] == "Vessel, Containerized") {
     $checkedYes = " checked";// note the space before checked
} if($getDataForPDF["typeOfMove"] == "roro") {
     $checkedNo = " checked";// note the space before checked
}


$html .= '<tr>';
     $html .= '<td colspan="3">';
          $html .= '<small>11. TYPE OF MOVE</small> <br />';
          $html .= $getDataForPDF["typeOfMove"];
     $html .= '</td>';

     $html .= '<td colspan="2">';
          $html .= '<small>11a. CONTAINERIZED &nbsp;&nbsp;&nbsp; (Vessel only)</small> <br/>';
          $html .= '<input type="checkbox" name="yes"'.$checkedYes.'> Yes &nbsp;&nbsp;&nbsp; <input type="checkbox"  name="no"'.$checkedNo.'> No';
      $html .= '</td>';
$html .= '</tr>';

JSFiddle:http://jsfiddle.net/o984L61e/

编辑

尝试将顶部代码块更改为:

$checkedYes = '';
$checkedNo = '';
$getDataForPDF = getDataForPDF($bookingsId, $bookingsLettersDockReceiptId);
if($getDataForPDF["typeOfMove"] == "Vessel, Containerized") {
     $checkedYes = " checked='checked'";// note the space before checked
} 
if($getDataForPDF["typeOfMove"] == "roro") {
     $checkedNo = " checked='checked'";// note the space before checked
}

examples on tcpdf 使用 checked='checked' 属性 就像其他答案一样,但是在尝试连接 html 字符串之前必须初始化变量。正如问题中所写, $checkedYes$checkedNo 将是未定义的,因为它们是在互斥的 if 块中初始化的。不确定这是否会有所作为,但似乎有道理。

TCPDF 的 writeHTML() 函数仅支持 HTML 标签的有限子集。查看 writeHTML() documentation 了解详情。 input 标签显然是 支持的标签。

相反,您可以使用 HTML 实体来表示选中和未选中的复选框。已经有一个 Whosebug question 给出了您可以使用的可能实体的示例。