2012-03-11 2 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

+0

과 테이블을 만들 때 어떤 오류가 있습니까? 아무것도 보이지 않습니까? – riso

+0

안녕하세요, 불행히도 오류 메시지가 표시되지 않습니다. 조금 더 강조하기 위해 내 페이지로 연결되는 링크를 동봉했습니다. http://www.mapmyfinds.co.uk/development/ajaxfunction.php 친절한 당신은 두 번, 첫 번째 하나를 삭제 – IRHM

1

견적이 그 라인에 엉망입니다. 바깥 쪽 문자열에 큰 따옴표를 사용하면 변수가 보간되고 \n과 같은 이스케이프 문자는 리터럴로 해석되지 않습니다.

echo "\ n" . "\ n" . "{$ dateoftrip} \ n" . "\ n";

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

A : 당신은 또한 더 깨끗하게 HEREDOC statement,이 작업을 수행하고 완전히 인용 문제와 linebreks를 방지 할 수 있습니다

// ------ ^^^^ 누락 세미콜론 .... 추가주의 사항 : 귀하의 스크립트는 SQL 주입에 취약합니다. mysql_real_escape_string()로 모든 입력 값을 탈출 :이

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"; 
+1

OP 코드에는 해당 줄에 누락 된 세미콜론이 있습니다. – jprofitt

+0

@jprofitt 상기 주셔서 감사합니다. 그래서 여러 줄 연결 대신에 HEREDOC을 옹호하는 이유입니다 ... –

+0

안녕하세요, HEREDOC은 분명히 저에게 새로운 것이므로, 이것들을 살펴 봐야 할 것입니다. 그리고 SQL 주입에 대한 정당한 메모. 친절한 분께 – IRHM

1

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

안녕하세요. 내 게시물에 회신 할 시간. 위의 감사하게도 이제 오류 메시지를 제거 할 수 있었지만 불행히도 검색된 결과로 테이블을 만들 수 없습니다. 종류는 안부 – IRHM

관련 문제