2011-02-10 5 views
1

구입할 수량을 입력하는 데 사용되는 텍스트 상자를 클릭하면 아래 코드가 계속 viewcart.php로 연결되는 이유를 이해할 수 없습니다. 페이지의 모든 앵커 태그 난 viewcart.php 모든 링크를 제거하지만 운 : 클릭시 텍스트 입력 불필요한 리디렉션

<form name="cx" method="get" action="viewcart.php?action=add&id=<?php $pid; ?>">   
    <?php 

     while($row=mysql_fetch_assoc($result)){ 
     $pid=$row['PID']; 
     ?> 
      <tr> 
       <td><?php echo $row['PID']; ?></td> 
      <td><a href="viewprod.php?prodname=<?php $row['PRODUCT']; ?>"> <?php echo $row['PRODUCT']; ?></a></td> 

       <td><?php echo $row['CATEGORY']; ?></td> 
       <td><?php echo $row['P_DESC']; ?></td> 
       <td><?php echo $row['QTYHAND']; ?></td> 
       <td><?php echo $row['S_PRICE']; ?></td> 

       <input type="hidden" value="<?php echo $row['QTYHAND']; ?>" name="qoh[]"/> 

       <input type="hidden" value="<?php echo $row['S_PRICE']; ?>" name="sprice[]"/> 


       <?php echo "<td><a href=\"viewcart.php?action=add&id=$pid\"><img src=\"../img/system/add-icon.png\"></a></td>"; ?> 
       <td><input type="checkbox" name="sc[]" id="<?php echo $row['PID'];?>" value="<?php echo $row['PID']; ?>"></input></td> 
       <td><input type="text" name="qbuys[]" value="" id="qb"></input></td> <!--when I click on this, it seems like I'm clicking on a link to viewcart.php --> 

</table> 
<input type="submit" value="submit"></input> 
</form> 

은 내가이 문제를 해결하는 데 유용 생각하지 않는 코드의 일부를 제거하지 않습니다. 도와주세요. 감사.

+1

저에게 맞는 작품입니다. 클릭 이벤트 등을 바인딩하는 다른 장소에 자바 스크립트가 없는지 확인하십시오. – Kissaki

+0

PHP 또는 리디렉션과 관련하여 어떤 영향이 있습니까? – Kissaki

+0

$ pid를 울리는 중이 아니며 범위 지정 문제도 있습니다. 아래 내 대답을 참조하십시오. – xzyfer

답변

1

코드에 두 가지 문제가 있습니다. $ pid가 울리지 않고 범위가 잘못되었습니다.

<form name="cx" method="get" action="viewcart.php?action=add&id=<?php $pid; ?>"> 

당신은 추가해야 echo :

당신은 항상 ''메아리됩니다 있도록 while 루프 내부 때까지
<form name="cx" method="get" action="viewcart.php?action=add&id=<?php echo $pid; ?>"> 

또한, $의 PID가 존재하지 않습니다

이 페이지의 소스를 보면
// $pid == null; 
<form name="cx" method="get" action="viewcart.php?action=add&id=<?php $pid; ?>"> 


<?php 
    while($row=mysql_fetch_assoc($result)){ 
    $pid=$row['PID']; // NOW $pid has a value 
?> 

당신은 볼 수 :

<form name="cx" method="get" action="viewcart.php?action=add&id="> 

id에 주목하십시오. 이렇게하면 나를 계속 보낼 수 있습니다. viewcart.php

1

echo$pid을 (를) 서식 작업에 넣지 마십시오.

즉, 양식을 제출할 때 예상대로 가지 않습니다. 서버가 활성화 된 짧은 태그가있는 경우

action="viewcart.php?action=add&id=<?php echo $pid; ?>" 

또는

action="viewcart.php?action=add&id=<?=$pid?>" 

이 두 번째 examle

에만 작동합니다.

1

페이지를 생성하는 PHP 코드를 보는 것이 아니라 브라우저에서 페이지를로드 한 다음 "소스보기"를 클릭하는 것이 좋습니다. 그렇게하면 어떤 코드가 생성되는지 정확히 알 수 있으며, 거기에서 다시 돌아가서 어떤 문장이 잘못되었는지 식별 할 수 있습니다.

그러나, 나는 다음 줄을보고 제안 다음 '제품'속성에 아무런 반향이 없습니다

<td><a href="viewprod.php?prodname=<?php $row['PRODUCT']; ?>"> <?php echo $row['PRODUCT']; ?></a></td> 

.