2012-09-09 71 views
0

编辑:我已更改代码,如下所示,并得到'NaN'错误!有人能给我一个线索,知道这是什么,并解决一个小费?谢谢。JS内部的PHP ..警告不显示


有人可以告诉我这个代码有什么问题吗?

  1. 首先,我在PHP中调用了一个Javascript,它真的有可能吗?
  2. 我叫第二次提醒的方式有问题吗? (尽管它是否可能在php中使用js),这意味着显示文本输入和在警报消息中选择的选项。
  3. 我是否需要在循环的最后一个大括号之后加上'end of the line'(;)?

下面是代码:

<?php 
$con=mysql_connect('localhost','root') or die ("Server connection failure!"); 
$db=mysql_select_db('regional_data',$con) or die ("Couldn't connect the database"); 
$SQL="SELECT sbstart, sbend FROM newchk"; 
$run=mysql_query($SQL,$con) or die ("SQL Error"); 
$nor=mysql_num_rows($run); 
?> 
<!DOCTYPE html> 
<html> 
<head><title></title> 
<script type="text/javascript"> 
function ValidateData() { 
var TextIn = document.getElementById('txtN'); 
    if(TextIn.value == ""){ 
     alert ("Text field is empty"); 
     return false; 
    }else{ 
     var TextIn = document.getElementById('options'); 
     alert (<?php $i ?> + TextIn.value); 
    } 
} 
</script> 
</head> 
<body> 
<form onsubmit="return ValidateData()" method="POST"> 
<select STYLE='width:90px'><?php 
while ($rec = mysql_fetch_array($run)) 
{ 
    for($i=$rec['sbstart']; $i<=$rec['sbend']; $i++) 
    { 
     echo "<option id='options' value=''.$i.''>$i<br></option>"; 
    } 
} 
?> 
</select> 
<input type="text" name="txtN"> 
<input type="submit" name="subN" value="Save"> 
</form> 

</body> 
</html> 
+0

'textN'定义在哪里?如果内部有未定义的变量,Alert不会显示。 – Tchoupi

+1

您已经使用txtN作为输入元素的名称。为了像你一样访问它,你需要创建元素txtN的id(与subN相同) – enhzflep

+0

对于初学者来说,使用console.log(textN),看看你使用的是萤火虫。 – xlordt

回答

0

你应该通过在onsubmit形式的细节,你的选择没有一个名字,你不能命名选项,您需要命名的选择框:

<form onsubmit="return ValidateData(this)" method="POST"> 
<select STYLE='width:90px' name='options'><?php 
while ($rec = mysql_fetch_array($run)) 
{ 
    for($i=$rec['sbstart']; $i<=$rec['sbend']; $i++) 
    { 
     echo "<option value='$i'>$i<br></option>"; 
    } 
} 
?> 
</select> 
<input type="text" name="txtN"> 
<input type="submit" name="subN" value="Save"> 
</form> 

和你的函数:

<script type="text/javascript"> 
function ValidateData(form) { 
    if(form.txtN.value == ""){ 
     alert ("Text field is empty"); 
     return false; 
    } else { 
     alert (form.options[form.options.selectedIndex].value + form.txtN.value); 
    } 
} 
</script> 
+0

嗨感谢您的回复。稍加说明。 on“alert(form.options [form.options.selectedIndex] .value + form.txtN.value);我如何指定form.options.selectedIndex?是一个内置函数吗? –

+0

如果我在编码上添加相同的它似乎没有捕获一个值,并产生一个空的输出为选择。 –

+0

我收回上面的评论。分类!许多感谢! –

0

试试这个:

alert (<?php echo $i; ?> + TextIn.value); 

你有你的代码目前书面将输出方式:

alert (+ TextIn.value); 

...这是无效的JS。