【问题标题】:How to pass javascript function in php [duplicate]如何在php中传递javascript函数[重复]
【发布时间】: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]-&gt;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-&gt;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


【解决方案1】:

试试这个

    <select sorted class='form-control required' <?php if ($userInfo[0]->isManual == 1) { ?> onchange="saveDetailData('<?php echo $detail->id ?>', $(this).val(), 'batchNo')" <?php } ?>>

【讨论】:

  • 我需要$userInfo[0]-&gt;isManual == 1条件下的完整代码
猜你喜欢
  • 2012-03-10
  • 2011-06-20
  • 1970-01-01
  • 1970-01-01
  • 2015-06-02
  • 2014-01-09
  • 2012-04-29
  • 1970-01-01
相关资源
最近更新 更多