【发布时间】:2019-07-03 09:55:56
【问题描述】:
1 我写了这段代码,它在没有 php 条件的情况下可以正常工作。
<select sorted class='form-control required' onchange="saveDetailData(<?php echo $detail->id ?>,$(this).val(),'batchNo' )">
<option value='0'>Select Batch</option>
<?php if(!empty($batchDetail) && $userInfo[0]->isManual == 1)
{
foreach ($batchDetail as $cl19)
{
?>
<option value='<?php echo $cl19->batchNo ?>' <?php if ($cl19->batchNo == $detail->batchNo) { echo 'selected=selected';} ?>><?php echo date('d-M-Y', strtotime(date('Y-m-d', strtotime($cl19->inwardDate)))). ' - ' . $cl19->batchNo .' ( '.$cl19->stockQty.' )'?></option>
<?php
}
}
?>
</select>
2 并且这段代码在 PHP 条件下不起作用。
<?php
if($userInfo[0]->isManual == 1){echo "
<select sorted class='form-control required' onchange='saveDetailData($detail->id,$(this).val(),'batchNo' )'>
<option value='0'>Select Batch</option>
";}
?>
<?php if(!empty($batchDetail) && $userInfo[0]->isManual == 1)
{
foreach ($batchDetail as $cl19)
{
?>
<option value='$cl19->batchNo' <?php if ($cl19->batchNo == $detail->batchNo) { echo 'selected=selected';} ?>><?php echo date('d-M-Y', strtotime(date('Y-m-d', strtotime($cl19->inwardDate)))). ' - ' . $cl19->batchNo .' ( '.$cl19->stockQty.' )'?></option>
<?php
}
}
?>
<?php
if($userInfo[0]->isManual == 1){echo "
</select>
";}
?>
3 这是我得到的不工作代码的输出:
<select sorted="" class="form-control required" onchange="saveDetailData(244,$(this).val()," batchno'="" )'="">
<option value="0">Select Batch</option>
<option value="t51">25-Oct-2018 - t51 ( 5 )</option>
<option value="t58">25-Dec-2018 - t58 ( 410 )</option>
</select>
4 这是工作代码的输出:
<select sorted="" class="form-control required" onchange="saveDetailData(244,$(this).val(),'batchNo' )">
<option value="0">Select Batch</option>
<option value="t51">25-Oct-2018 - t51 ( 5 )</option>
<option value="t58">25-Dec-2018 - t58 ( 410 )</option>
唯一的问题是当我将 php 条件置于 No.2 检查 No. 3 的输出时,它没有进入函数 onchange。
我要做的就是将此代码放在我的if($userInfo[0]->isManual == 1) php条件中
我用这个解决了:
if($userInfo[0]->isManual == 1){echo '
<select sorted class="form-control required" onchange="saveDetailData('.$detail->id.',$(this).val(),\'batchNo\' )">
<option value="0">Select Batch</option>
';}
?>
【问题讨论】:
-
如果我不得不猜测我会说您的问题源于您在
onchange='saveDetailData($detail->id,$(this).val(),'batchNo' )'中使用'。您使用'作为 on change 处理程序的分隔符,但也在 batchNo 文字周围。 -
也是一个旁注;鉴于您正在执行内联事件处理程序,
onchange="saveDetailData(244,$(this).val(),'batchNo')"可能真的是onchange="saveDetailData(244,this.value,'batchNo')"。你真的不需要 jQuery 来获得那里的价值。 -
@Taplar 我不能把 "" onchange 因为它已经在 echo check no 上。 2
标签: javascript php