2014-03-31 108 views
0

所以我新的PHP和我這裏有這個網站頁面上有兩個按鈕(被包含在URL中的id值):如何檢查在PHP中按下哪個輸入按鈕?

<!DOCTYPE html> 
<head> 

<title>StoryBlox is a Social Story Builder Tool</title> 

<meta charset="utf-8"> 
<!-- these support the header/footer formatting --> 
<link type="text/css" rel="stylesheet" href="css/main.css"> 
<link type="text/css" rel="stylesheet" href="css/header_footer.css"> 
<script src="js/header.js"></script> 
<?php //include_once 'confirm_login.php' 
    include_once 'story_manager.php'; 
    include_once 'open_connection.php'; 
    //include_once 'functions.php'; 
    //sec_session_start(); 
    if(isset($_GET['id'])){ 
     $str_id = $_GET['id']; 
     $draft_id = get_story_attribute($str_id, 'draft'); 
    }else{ 
     echo "Invalid story id."; 
     echo "<br>"; 
    } 
    ?> 

</head> 

<body> 
<div id="wrapper_main"> 
    <div id="wrapper_content"> 

     <?php include_once 'header.php'; ?> 

     <h1>Welcome to StoryBlox Create Story!</h1> 

    </div> 
    <!-- menu --> 
    <!--<div id="inputs"> --> 
    <form id="create_form" action="save_story.php?id=<?php echo $str_id?>" method="POST"> 
     <input type="text" name="storyTitle" id="title" placeholder="Enter title." autofocus/><br> 
     <textarea rows="4" cols="50" name="storyDesc" id="description" placeholder="Enter description here."></textarea> 

     <div id="footer"> 
      <input type="button" name="draftBtn" onclick="this.form.submit()" value="Save as Draft"/> 
      <input type="button" name="finalBtn" onclick="this.form.submit()" value="Finished!"/> 
     </div> 
    </form> 

    </div> 
</div> 
<?php include_once 'footer.php'; ?> 
</body> 

當我點擊這兩個按鈕中的一個,我帶來了到這個PHP文檔在這裏:

include_once 'open_connection.php'; 
include_once 'story_manager.php'; 
$mysqli = open_connection(); 

if($_SERVER['REQUEST_METHOD'] === 'POST'){ 
if(isset($_POST['draftBtn'])){ 
    $title = $_POST['storyTitle']; 
    $desc = $_POST['storyDesc']; 
    $str_id = $_GET['id']; 
    update_story_title($str_id, $title); 
    //update_story_description($str_id, $desc); 
    header('Location: createStory.php'); 
} 
elseif(isset($_POST['finalBtn'])){ 
    $title = $_POST['storyTitle']; 
    $desc = $_POST['storyDesc']; 
    $str_id = $_POST['storyID']; 
    update_story_title($str_id, $title); 
    //update_story_description($str_id, $desc); 
    save_draft_as_completed($str_id); 
    header('Location: ../home.php'); 
}else{ echo "failed";} 
}?> 

而且我總是在我的頁面上打印出「失敗」。我一直在Google上搜索幾個小時,並且我不明白我在哪裏會出錯。如果有人能幫助,將不勝感激。此外,如果任何人可以闡明什麼相當於

<input type="textarea"> 

會是很好的。謝謝!

+0

var_dump($ _ POST)產生了什麼?另外我知道有2個提交按鈕確實有效,只會發送哪個被點擊。 – Class

+0

將您輸入的類型更改爲「提交」而不是「按鈕」 – Fadey

+0

「等同於textarea」是什麼意思? – Brovoker

回答

2

使用

<input type="submit" name="draftBtn" value="Save as Draft"/> 

代替按鈕類型與他們的onclick事件。

+0

我收到了「invalid story id」。錯誤,當我這樣做,我不再重定向到save_story頁面。 我知道一個事實,我有一個正確的ID在我的數據庫中的條目。 – user3349697

+0

你在哪一行得到這個錯誤? – Brovoker

+0

等待它的作品,我只是沒有意識到它是由於我的頭()返回到原來的頁面。 – user3349697

0

嘗試使用提交標記而不是按鈕。 ,如果你想使用按鈕標籤,那麼你可以通過隱藏字段傳遞值。設置點擊事件隱藏字段的值。