2011-06-11 4 views
0

링크를 클릭하여 두 개의 입력 요소를 자동 완성하려고합니다. ...데이터베이스 항목으로 HTML 양식 자동 채우기

echo "<tr class='odd'>"; 
echo "<td><span class='hover'><ahref='#'onClick='autoFill(" . $row['departure'] . ", " . $row['destination'] . "return false;'>" . $row['departure'] ." » ". $row['destination'] . "</a><span></td>"; 
echo "</tr>"; 

가 동작하지 않습니다 :

<script> 

    function autoFill(depart_from, depart_to) { 
     document.getElementById('depart_from').value = depart_from; 
     document.getElementById('depart_to').value = depart_to; 
    } 

</script> 

그리고 여기 링크입니다 : 여기에 내가 사용하고 코드입니다! 내가 도대체 ​​뭘 잘못하고있는 겁니까?

고맙습니다. 우선 들어

답변

0

는, 간격은 앵커 태그에 분류됩니다

<ahref='#'onClick='autoFill(

가 있어야한다 :

<a href='#' onClick='autoFill(

또한, 당신은 결코 세미콜론으로 기능과 별도의 문을 닫으 :

autoFill(" . $row['departure'] . ", " . $row['destination'] . "return false; 

은 다음과 같아야합니다.

autoFill(" . $row['departure'] . ", " . $row['destination'] . ");return false; 

마지막으로, 당신은 따옴표로 그 방법 매개 변수를 포장 할 수 있습니다 :

autoFill(" . $row['departure'] . ", " . $row['destination'] . ");return false; 

은 다음과 같아야합니다

autoFill('" . $row['departure'] . "', '" . $row['destination'] . "');return false; 

더있을 수 있습니다. 한 가지 기억해야 할 것은 echo 문을 사용하여 큰 HTML 블록을 내보내려고하지 않는 것입니다. 코드가 읽기 쉽도록 만들고, 더 중요한 것은 문자열에 따옴표를 포함시키는 것을 더욱 어렵게 만드는 또 다른 "문자열 화"계층을 추가하는 것입니다.

+2

PHP 변수를 javascript로 전달하는 올바른 방법은'json_encode'를 사용하는 것입니다. 'addslashes'가 아니라'htmlentities' (또는'htmlspecialchars')가 아니라 가장 확실한 것은 없습니다. – Halcyon

+0

@Frit van Campen : 사실, OP 코드로 할 일이 더 많습니다. – David

+0

고맙습니다! 나는 이것에 대해 다른 접근법을 시도 할 것이다. 그것을하는 더 깨끗한 방법이 있어야합니다! – Ismailp

0

a 태그의 간격이 잘못되었으므로 a href 사이에 공백이 있어야합니다.

당신은 함수 호출에 괄호를 닫 결코, 나는 당신이 자신의 유형에 따라, 인용 부호의 매개 변수를 둘 필요가 있다고 생각 :

autoFill('" . $row['departure'] . "', '" . $row['destination'] . "'); return false;'