我有一个检查/搜索数据的网站。如果我们没有填写表格,然后点击按钮搜索,会出现一个弹出菜单,上面写着“选择数据”。但是,当我们没有填写表单时,会发生什么,单击按钮搜索,弹出菜单未显示。这是我的代码:
<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 :(得分:0)
我认为你错过了PHP代码的else部分javascript代码的结束括号。它是应该结束EW_checkMyForm4
功能的那个。
答案 1 :(得分:0)
根据您配置的错误报告级别,这个:
if($_SESSION[dataname]==""){...
可能会生成如下错误消息并破坏您的代码:
<b>Notice</b>: Use of undefined constant dataname - assumed 'dataname'
尝试在索引周围添加引号:
if($_SESSION['dataname']==""){...
答案 2 :(得分: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>
答案 3 :(得分: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" ))) {
<强>原因强>
如果你没有括号,你的条件EW_hasValue(EW_this.x_data_names, "TEXT" ) && EW_hasValue(EW_this.x_sid_app_status, "SELECT" )
将首先被评估,无论你返回什么,你都有||
运算符的所有其他条件。这意味着如果任何右侧条件返回TRUE
,则您的总条件表达式将返回true。
另一个问题我可以在您的代码中看到,这可能与此问题无关,但它应该在其他方案中产生问题。你在js函数EW_checkMyForm4
function EW_checkMyForm4(EW_this) {
<?php
if($_SESSION['dataname']==""){
?>
但是支架在js功能之外是关闭的。所以,我认为你应该将这部分移到函数EW_checkMyForm4
之上,如下所示:
<?php
if($_SESSION['dataname']==""){
?>
function EW_checkMyForm4(EW_this) {