2010-01-18 5 views
0

좋아, 그래서이 드롭 다운 Mysql DB에 의해 채워져있다. 드롭 다운 변경시 전체 페이지가 DB에서 정보를 채 웁니다. 이 양식을 제출할 때 원하는 것은 무엇입니까 (이 페이지에는 두 가지 양식이 있습니다). 제가 방금 드롭 다운에서 선택한 동일한 클라이언트로 돌아가고 싶습니다. 지금 당장은 세션을 사용하여 이전과 동일한 클라이언트를 선택했지만 변경 이벤트는 선택한 사람의 데이터베이스에서 정보를 선택하지 않습니다.PHP 드롭 다운 스티커 및 제출 양식

session_start(); 

$current = isset($_SESSION['ClientNamefour']) ? $_SESSION['ClientNamefour'] : 0; 

$options4=""; 

while ($row = mysql_fetch_array($result)) { 

    $id=$row["Client_Code"]; 
    $thing=$row["Client_Full_Name"]; 
    $value="$id, $thing"; 
    // insert SELECTED="SELECTED" if the current $id matches $current 
    $options4.="<OPTION VALUE=\"$value\" ".($id == $current ? ' SELECTED="SELECTED"' : '').">".$thing; 
} 


?> 

<FORM name="form" action="<?php echo $_SERVER['PHP_SELF']; ?>" method="POST"> 

<SELECT NAME="ClientNamefour" OnChange="this.form.submit()"> 

    <OPTION VALUE=0>Client 
    <?php echo $options4?> 

    </SELECT> 
</FORM> 


    session_start(); 
// Do the redirect 
    $_SESSION['ClientNamefour'] = $_POST['txtclientcode']; 



header("Location: http://endeavor/php/financialoasistest.php"); 

답변

0

좋아 덕분에, 거기에 꽤 몇 가지 문제가있다,하지만 옆으로 일반적인 코드 구조 :

  1. 는 존재하지 것이다 POST 값에서 세션 변수를 설정하고 있습니다. (코드에 따라 $_POST['ClientNamefour']이어야합니다.)

  2. 어떤 이유로 든 session_start()을 두 번 호출합니다. <select>에 대한 옵션을 구성 할 때 (그냥 처음에 한 번 호출합니다.)

+0

HTML 콘텐츠가 사용자 에이전트로 출력 된 후에도 리디렉션됩니다. –

+0

코드가 두 개의 다른 페이지에 있기 때문에 session_start()가 두 번 실행되는 이유가 있습니다. 하나의 프로세스 페이지와 하나는 실제 웹 사이트입니다. POST는 나중에 페이지에 존재합니다. 세션이 다시 돌아올 때 onchange 작업을 수행하려면 어떻게해야합니까? – Eric

+0

그런 경우 위의 코드를 두 개의 세그먼트로 다시 포맷하고 누락 된 비트를 추가해야합니다. 현재 무엇이 무엇인지 알려주지 않으며 볼 수없는 코드를 디버깅하는 것은 불가능합니다. :-) –

0

이 과정 페이지에서 $_SESSON['ClientNamefour'] = $_POST['ClientNamefour']를 설정하면,이 같은 뭔가해야한다.

while ($row = mysql_fetch_array($result)) 
{ 
    $id = $row["Client_Code"]; 
    $key = "$id, $thing"; 
    $value = $row["Client_Full_Name"]; 

    $selected = ($id == @$_SESSION['ClientNamefour']) ? ' selected' : ''; 

    echo "<option value=\"{$key}\"{$selected}>{$value}</option>"; 
} 

편집 : middaparka의 대답에 귀하의 코멘트를보고, 나는이 업데이트되었습니다. 나도 모든 코드가 한 페이지에 있다고 가정했다.