2012-03-11 182 views
1

我想知道是否有人可以幫助我。從單選按鈕創建動態列表選擇

我把下面的代碼放在一起,試圖讓用戶通過單選按鈕選擇檢索mySQL記錄,然後在我的html表單中填充一個表。

<html> 
<head> 
<script type="text/javascript"> 

function ajaxFunction(name) 
{ 
var browser = navigator.appName; 
if(browser == "Microsoft Internet Explorer") 
{ 
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); 

} 
else 
{// code for IE6, IE5 
xmlhttp=new XMLHttpRequest(); 

} 
xmlhttp.onreadystatechange=function() 
{ 
if (xmlhttp.readyState==4 && xmlhttp.status==200) 
{ 
document.getElementById("my_div").innerHTML=xmlhttp.responseText; 
} 
} 

xmlhttp.open("GET","getrecords.php?dateoftrip="+name,true); 
xmlhttp.send(); 
} 

function getquerystring() { 
var form = document.forms['frm1']; 
var word = form.word.value; 
qstr = 'w=' + escape(word); // NOTE: no '?' before querystring 
return qstr; 
} 


</script> 


<style type="text/css"> 
<!-- 
.style1 { 
    font-family: Calibri; 
    font-size: 14px; 
} 
--> 
</style> 
</head> 
<body> 

<form action="getrecords.php" method="get" name="frm1"> 

<table width="148" border="0"> 

<tr> 
<td width="152"><p class="style1">Select a date from below</p> 
    <div align="center"> 
    <?php 
include("db.php"); 
$query="select userid, dateoftrip from finds group by dateoftrip"; 
$result=mysql_query($query); 
while (list($userid, $dateoftrip) = 
    mysql_fetch_row($result)) 
    { 

    echo"<tr>\n" 
    . 
    '<td><input type='radio' name='name' dateoftrip value='{$userid}' onchange="ajaxFunction(this.value)"/></td>\n' 
    .'<td><small>{$dateoftrip}</small><td>\n' 
    .'</tr>\n' 
    } 
    echo"<tr><td colspan=\"3\">"; 
    echo"<br>"; 
    echo"</td></tr>"; 
    echo'</table>'; 

?> 
    </div></td> 
</tr> 
</table> 
</form> 
<div id="my_div"></div> 
</body> 
</html> 

getrecords.php

<?php 
include("db.php"); 
$dateoftrip= $_GET['dateoftrip']; 
$findname= $_GET['findname']; 
$finddescription= $_GET['finddescription']; 

$query="select * from finds where dateoftrip='$dateoftrip'"; 
echo "<table>"; 
$result=mysql_query($query); 
while($rows=mysql_fetch_array($result)){ 

echo "<tr>"; 
echo "<td>Find Name : </td>"; 
echo "<td>".$rows['findname']."</td>"; 
echo "</tr>"; 

echo "<tr>"; 
echo "<td>Find Description : </td>"; 
echo "<td>".$rows['finddescription']."</td>"; 
echo "</tr>"; 
} 
echo "</table>"; 
?> 

我遇到的問題是,我收到以下錯誤,我不知道爲什麼:Parse error: syntax error, unexpected T_STRING, expecting ',' or ';' in /homepages/2/d333603417/htdocs/development/ajaxfunction.php on line 69與線69是我的html表格代碼的這一行: '<td><input type='radio' name='name' dateoftrip value='{$userid}' onchange="ajaxFunction(this.value)"/></td>\n'

我一直在這方面工作了一段時間,到目前爲止,我沒有成功解決它。我只是想知道是否有人可以看看這個請讓我知道我要去哪裏錯了。

非常感謝

回答

0

它改變這種

echo"<tr>\n" 
    . 
    "<td><input type='radio' name='name' dateoftrip value='{$userid}' onchange="."ajaxFunction(this.value)"."/></td>\n" 
    ."<td><small>{$dateoftrip}</small><td>\n" 
    ."</tr>\n"; 
+0

嗨,非常感謝您花時間回覆。我現在已經擺脫了錯誤信息,但不幸的是,我無法用檢索到的記錄創建表格。你能告訴我你有什麼想法,我可能會出錯嗎?非常感謝 – IRHM 2012-03-11 14:36:28

+0

以及您在創建表格時出現了哪些錯誤?什麼都沒顯示或? – riso 2012-03-11 14:46:39

+0

嗨,不幸的是我沒有收到任何錯誤。我附上了一個鏈接到我的網頁,以突出這一點。 http://www.mapmyfinds.co.uk/development/ajaxfunction.php親切的問候 – IRHM 2012-03-11 14:54:57

1

你的報價在這條線上搞砸了。對外部字符串使用雙引號,所以變量會被內插,並且像\n這樣的轉義字符不會被解釋爲文字。

echo「\ n」 。 「\ n」 「\ n」 。「{$ dateoftrip} \ n」 。「\ n」; // ------ ^^^^缺少分號....

您也可以更乾淨了HEREDOC statement,做到這一點,避免報價的問題,linebreks完全:

echo <<<HTML 
    <tr> 
    <td><input type='radio' name='name' dateoftrip value='{$userid}' onchange='ajaxFunction(this.value)'/></td> 
    <td><small>{$dateoftrip}</small><td> 
    </tr> 
HTML; 

一進一步注意:您的腳本容易受到SQL注入的影響。您可以逃離所有輸入值與mysql_real_escape_string()

$dateoftrip = mysql_real_escape_string($_GET['dateoftrip']); 
$findname = mysql_real_escape_string($_GET['findname']); 
$finddescription = mysql_real_escape_string($_GET['finddescription']); 
// etc... 
+1

在OP代碼中,該行還有一個缺失的分號。 – jprofitt 2012-03-11 14:13:22

+0

@jprofitt感謝上面的評論。這就是爲什麼我主張HEREDOC而不是多線串接... – 2012-03-11 14:17:16

+0

嗨,HEREDOC對我來說肯定是新的,我不得不看看這些。並適時地注意關於SQL注入。親切的問候 – IRHM 2012-03-11 14:39:07

1

您需要逃生者的報價,並在echo語句的末尾添加一個分號。

echo "<tr>\n <td><input type='radio' name='name' dateoftrip value='$userid' onchange=\"ajaxFunction(this.value)\"/></td>\n <td><small>$dateoftrip</small><td>\n</tr>\n"; 
+0

嗨,非常感謝您採取時間來回復我的帖子。如上所述,幸好我現在已經能夠擺脫錯誤信息,但很遺憾,我無法用檢索結果創建表格。親切的問候 – IRHM 2012-03-11 14:37:44