2012-09-09 96 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。