2015-12-15 72 views
0

我有一个网站检查/搜索数据。如果我们没有填写表格,然后点击按钮搜索,会出现一个弹出菜单,显示“选择数据”。但是,会发生什么情况是我们没有填写表单,然后点击按钮搜索,弹出菜单未显示。这是我的代码:Javascript弹出菜单中未显示php

<script type="text/javascript"> 

function EW_checkMyForm4(EW_this) { 
    <?php 
    if($_SESSION[dataname]==""){ 
    ?> 
    if (EW_hasValue(EW_this.x_data_names, "TEXT") && EW_hasValue(EW_this.x_sid_app_status, "SELECT") || EW_hasValue(EW_this.x_cust_name, "TEXT") || EW_hasValue(EW_this.x_id_card_no, "TEXT") || EW_hasValue(EW_this.x_initiation_date, "TEXT") || EW_hasValue(EW_this.x_Tanggal_Inisiasi_ke, "TEXT") || EW_hasValue(EW_this.x_cust_birthdate, "TEXT") || EW_hasValue(EW_this.x_engine_no, "TEXT") || EW_hasValue(EW_this.x_chassis_no, "TEXT")) { 

      return true; 
    }else{ 

     if(!EW_hasValue(EW_this.x_data_names, "TEXT")){ 
      alert('choose data !'); 
     } else { 
      return true; 
     } 

     return false; 
    } 
} 
<?php }else{ ?> 
if (EW_hasValue(EW_this.x_sid_app_status, "SELECT") || EW_hasValue(EW_this.x_cust_name, "TEXT") || EW_hasValue(EW_this.x_id_card_no, "TEXT") || EW_hasValue(EW_this.x_initiation_date, "TEXT") || EW_hasValue(EW_this.x_Tanggal_Inisiasi_ke, "TEXT") || EW_hasValue(EW_this.x_cust_birthdate, "TEXT") || EW_hasValue(EW_this.x_engine_no, "TEXT") || EW_hasValue(EW_this.x_chassis_no, "TEXT")) { 
    return true; 
}else{ 

    alert('fill at least one !'); 

    return false; 
} 
<?php } ?> 

</script> 

我使用php 5.5.30。你能帮我解决我的问题吗?以前感谢..

+0

这听起来更像是一个JavaScript的问题,不是一个PHP的问题。你有没有看过源代码来查看打印的JavaScript代码?你能告诉你如何在你的html中调用'function EW_checkMyForm4(EW_this)'? – Sean

+0

该代码很难读取。你有没有考虑另一种方法? –

+0

这可能不是最好的选择,但您可以按照一些步骤来解决您的代码问题。 1.请参阅您的页面源代码,哪些php条件有效。 2.使用浏览器的Web控制台查看运行JavaScript代码时是否出现错误。 你也应该交叉检查你的代码。因为函数的右括号似乎在错误的地方。 –

回答

0

我想你错过了PHP代码的其他部分中的JavaScript代码的右括号。这是应该结束EW_checkMyForm4函数的那个​​函数。

0

根据您的配置错误报告级别,这样的:

if($_SESSION[dataname]==""){... 

可能会产生像下面,打破你的代码的错误消息:

<b>Notice</b>: Use of undefined constant dataname - assumed 'dataname' 

尝试增加周围的指数行情:

if($_SESSION['dataname']==""){... 
0

试试这个:

<script type="text/javascript"> 
 

 
var dataname = '<?php echo $_SESSION[dataname]; ?>'; 
 

 
function EW_checkMyForm4(EW_this) { 
 
    if (!dataname) { 
 
     if (EW_hasValue(EW_this.x_data_names, "TEXT") && EW_hasValue(EW_this.x_sid_app_status, "SELECT") || EW_hasValue(EW_this.x_cust_name, "TEXT") || EW_hasValue(EW_this.x_id_card_no, "TEXT") || EW_hasValue(EW_this.x_initiation_date, "TEXT") || EW_hasValue(EW_this.x_Tanggal_Inisiasi_ke, "TEXT") || EW_hasValue(EW_this.x_cust_birthdate, "TEXT") || EW_hasValue(EW_this.x_engine_no, "TEXT") || EW_hasValue(EW_this.x_chassis_no, "TEXT")) { 
 

 
       return true; 
 
     
 
     }else{ 
 

 
      if(!EW_hasValue(EW_this.x_data_names, "TEXT")){ 
 
       alert('choose data !'); 
 
      } else { 
 
       return true; 
 
      } 
 

 
      return false; 
 
     } 
 
    } 
 
    else 
 
     if (EW_hasValue(EW_this.x_sid_app_status, "SELECT") || EW_hasValue(EW_this.x_cust_name, "TEXT") || EW_hasValue(EW_this.x_id_card_no, "TEXT") || EW_hasValue(EW_this.x_initiation_date, "TEXT") || EW_hasValue(EW_this.x_Tanggal_Inisiasi_ke, "TEXT") || EW_hasValue(EW_this.x_cust_birthdate, "TEXT") || EW_hasValue(EW_this.x_engine_no, "TEXT") || EW_hasValue(EW_this.x_chassis_no, "TEXT")) { 
 
      return true; 
 
     }else{ 
 

 
      alert('fill at least one !'); 
 

 
      return false; 
 
     } 
 
} 
 
</script>

0

你需要与其他括号条件的第二部分分开。就像这样:

if (EW_hasValue(EW_this.x_data_names, "TEXT") && (EW_hasValue(EW_this.x_sid_app_status, "SELECT") || EW_hasValue(EW_this.x_cust_name, "TEXT") || EW_hasValue(EW_this.x_id_card_no, "TEXT") || EW_hasValue(EW_this.x_initiation_date, "TEXT") || EW_hasValue(EW_this.x_Tanggal_Inisiasi_ke, "TEXT") || EW_hasValue(EW_this.x_cust_birthdate, "TEXT") || EW_hasValue(EW_this.x_engine_no, "TEXT") || EW_hasValue(EW_this.x_chassis_no, "TEXT"))) { 

原因

如果你没有括号,你conditon EW_hasValue(EW_this.x_data_names, "TEXT") && EW_hasValue(EW_this.x_sid_app_status, "SELECT")将首先评估,无论返回你有||运营商所有其他条件。这意味着如果任何右侧条件返回TRUE,那么您的总条件表达式将返回true。

另一个问题我可以在您的代码中看到,这可能与此问题无关,但应该在其他情况下产生问题。你的PHP代码这部分js函数EW_checkMyForm4

function EW_checkMyForm4(EW_this) { 
<?php 
if($_SESSION['dataname']==""){ 
?> 

内但支架的js函数外关闭。所以,我认为你应该移动功能EW_checkMyForm4上面这部分是这样的:

<?php 
if($_SESSION['dataname']==""){ 
?> 
function EW_checkMyForm4(EW_this) { 
+0

仍未显示。嗯,以前我使用PHP 5.2.4,并弹出菜单工作正常。但是当我升级我的PHP,弹出菜单没有显示。 – jewel