2015-01-28 2 views
1

데이터베이스에서 가져온 일부 데이터를 기반으로 양식을 생성합니다.PHP가 POST 양식을 생성합니다.

다음
<?php 
    echo "<style>"; 
    echo ".spoll{ -webkit-box-sizing: border-box;"; 
    echo "-moz-box-sizing: border-box;"; 
    echo "box-sizing: border-box;"; 
    echo "padding: 10px;"; 
    echo "padding-top: 5px;"; 
    echo "}"; 
    echo "</style>"; 

    //DISPLAY FUNCTION 

    function display($x){ 
     require("db_conx.php"); 
     $sql = "SELECT * FROM polls WHERE id='$x' LIMIT 1"; 
     $query = mysqli_query($db_conx, $sql); 
     while ($row = mysqli_fetch_array($query, MYSQLI_ASSOC)){ 
      $poll_id = $row['id']; 
      $topic = $row['topic']; 
      $startdate = $row['startdate']; 
      $stopdate = $row['stopdate']; 
      $active = $row['active']; 
      $type = $row['type']; 
      $title = $row['title']; 
      $pwidth = $row['pwidth']; 
      $borcolor = $row['borcolor']; 
      $borwidth = $row['borwidth']; 
      $fcolor = $row['fcolor']; 
      $bfcol = $row['bfcol']; 
      $bg = $row['bg']; 
      $borrad = $row['borrad']; 
      $abars = $row['abars']; 
      $bcol = $row['bcol']; 
      $brad = $row['brad']; 

     } 

      //DISPLAY THE POLL 
      $aquery = "SELECT * FROM answers WHERE parent='$poll_id'"; 
      $result = mysqli_query($db_conx, $aquery); 
      echo '<div class="spoll" style="width: '.$pwidth.'px; border: '.$borwidth.'px solid '.$borcolor.'; border-radius: '.$borrad.'px; color: '.$fcolor.'; background-color: '.$bg.';">'; 
      echo '<p><b>'.$title.'</b></p>'; 
      echo '<p style="font-size: 13px;">'.$topic.'</p>'; 
      echo '<form method="post" action="'.$_SERVER['PHP_SELF'].'">'; 

      // SELECT ANSWERS 
      if($type == 'single'){ 
       while ($usersRow = mysqli_fetch_array($result, MYSQLI_ASSOC)){ 
        echo '<input type="radio" name="rad" value="'.$usersRow['id'].'"/>'.$usersRow['content'].'<br><br>'; 
       } 
      } else { 
       $i = 0; 
       while ($usersRow = mysqli_fetch_array($result, MYSQLI_ASSOC)){ 
        echo '<input type="checkbox" name="check[]" value="'.$usersRow['id'].'"/>'.$usersRow['content'].'<br><br>'; 
        $i++; 
       } 
      } 

      //echo '<button style="border-radius: '.$brad.'px; border: none; padding: 10px; width: 100%; margin: auto; background-color: '.$bcol.'; color:'.$bfcol.'" value="VOTE" onclick="vote('.$poll_id.');"><b>VOTE</b></button>'; 
      echo '<input type="submit" value="Vote" style="border-radius: '.$brad.'px; border: none; padding: 10px; width: 100%; margin: auto; background-color: '.$bcol.'; color:'.$bfcol.'">'; 
      echo '</form>'; 
      echo '</div>'; 
    } 

    // END OF THE DISPLAY FUNCTION 


?> 

내가 형태로 표시하는 방법입니다

php_core.php : 여기

내 생성자

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<?php include("php_includes/php_core.php"); ?> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
<title>Untitled Document</title> 
</head> 

<body> 
<?php display('15'); ?> 
<span id="status"></span> 
<?php 
if(isset($_POST['submit'])){ 
echo "Posted!"; 
?> 
</body> 
</html> 

나는 이유를 모르겠어요,하지만하지 않습니다 값을 제출하십시오! 이 함수는 폼을 올바르게 출력합니다. 페이지 소스를보고 체크했습니다. 왜 효과가 없는지 모르겠으니 도움이 필요합니다. 나는 스크립트를 몇 번이고 수정했다. 결과가 없었다.

이 스크립트에 대한 추가 (선택 사항) 질문 : 는 당신은 내가 페이지를 다시로드하지 않고 기능 출력을 추가 HTML 태그없이 AJAX를 사용하여이 양식을 제출하고 새로 고칠 수있는 방법에 대해 어떤 생각을 가지고 있습니까? 몇 가지 방법을 찾았지만 div 안에 함수를 래핑해야하며 출력 구조와 메서드를 유지해야하므로 아이디어가 없습니다.

답변

3

당신은 당신의 제출 버튼에 name 속성을 추가해야합니다. 그렇지 않은 경우 $_POST['submit']이있는 경우 검사하는

<input name="submit" type="submit" value="Vote">

<input type="submit" value="Vote">

이 있어야한다.

추가 질문이 있으시면 jQuery's Ajax 기능을 사용하는 것이 좋습니다. See here

+0

네, 그게 간단했습니다. 나는 그것을 믿을 수 없다. 고맙습니다! 그 선택적인 질문에 대해 알고 있습니까? – Sergiu

+1

@Sergiu'jQuery'를 사용합니다. 내 업데이트 된 게시물을 참조하십시오, 당신이 사용하는 기능에 직접 연결되어 있습니다. – RhapX

1

버튼에 name을 설정하지 않았기 때문에 양식을 제출하지 않습니다.

if(isset($_POST['submit'])){ 

} 

submit 존재하지 않습니다.

변경에 :

echo '<input type="submit" name="submit">'; 
+0

오 마이 갓! 나는 그것을 믿을 수 없다. 나는 2 시간 이상을 잘못 찾았다. 나는 그것이 그렇게 간단하다고 믿을 수 없다! 고마워요! 옵션 질문에 대해 알고 있습니까? – Sergiu

+0

네, 그렇습니다.하지만 완전히 다른 주제이므로 답변을 드릴 수 없습니다 : – Linesofcode

+0

다른 질문을 게시 할 수 없습니다. 이 질문을 편집 해달라고 부탁합니다. 다시 물어 보는 것이 너무 이르므로 ... – Sergiu

관련 문제