2012-03-31 43 views
2

如何將php代碼置於javascript代碼中,以便在用戶單擊確定框上的確定後,它將值插入數據庫中? (形式提交給自己,但我沒有帶提供表單代碼)如何在確認框上單擊確定後插入值

下面是整個代碼:

        <?php 
session_start(); 

$username="xxx"; 
$password="xxx"; 
$database="xxx"; 

mysql_connect('localhost',$username,$password); 

@mysql_select_db($database) or die("Unable to select database"); 

       $sql = "INSERT INTO Media (Image, Video, Audio) 
        VALUES (' ". mysql_real_escape_string($image) . "', 
    ' ". mysql_real_escape_string($video) . "',' ". mysql_real_escape_string($audio) . "')"; 


       mysql_query($sql); 

mysql_close(); 

?> 

<script> 

function insertQuestion(form) { 

    var $tbody = $('#qandatbl > tbody'); 
    var $tr = $("<tr class='optionAndAnswer' align='center'></tr>"); 
    var $image = $("<td class='image'></td>"); 
    var $video = $("<td class='video'></td>"); 
    var $audio = $("<td class='audio'></td>"); 

     $tr.append($image); 
    $tr.append($video); 
    $tr.append($audio);  
    $tbody.append($tr); 

    } 

      function showConfirm(){ 

     var confirmMsg=confirm("Make sure that your details are correct, once you proceed after this stage you would not be able to go back and change any details towards Questions, Options and Answers for your Session." + "\n" + "\n" + "Are you sure you want to Proceed?" + "\n"); 

     if (confirmMsg==true) 
     { 
     submitform(); 
    } 
} 

      function submitform() 
      { 

     var QandAO = document.getElementById("QandA"); 

      QandAO.submit(); 

      } 

    </script> 

    <body> 

    <form id="QandA" action="<?php echo htmlentities($action); ?>" method="post" > 

    <table id="qandatbl" align="center"> 
<thead> 
<tr> 
    <th class="image">Image</th> 
    <th class="video">Video</th> 
    <th class="audio">Audio</th> 
</tr> 
</thead> 
<tbody></tbody> 
</table> 

<p><input id="submitBtn" name="submitDetails" type="submit" value="Submit Details" onClick="myClickHandler(); return false;" /></p> 

</form> 

     <script type="text/javascript"> 

function myClickHandler(){ 
    if(validation()){ 
       showConfirm(); 
    } 
} 

</script> 

    </body> 

下$操作方法是在表單會根據是否有匹配與否之間$ sessionMinus和$ _SESSION ['initial_count']。如果有匹配,發佈到create_session2.php,否則將表單發佈到自身。

if ($sessionMinus == $_SESSION['initial_count']){ 

    $action = 'create_session2.php'; 

}else if($sessionMinus != $_SESSION['initial_count']){ 

    $action = $_SERVER['PHP_SELF']; 

} 
+1

你可以通過AJAX提交表單,並有表單處理頁面返回的輸出,以判斷它成功與否? – 2012-03-31 21:37:48

+0

'var confirmMsg = confirm(你確定要繼續嗎?「+」\ n「);'不用開始'''在'Are [..]'之前'... – 2012-03-31 21:40:05

+0

@GabrielSantos,是的,這是一個錯字我在問題中鍵入它,它確實以「在我的應用程序中開始」 – user1304197 2012-03-31 21:41:05

回答

0

您可以將您的JavaScript函數形式的onsubmit事件處理程序:

<form onsubmit="showConfirm();" ...> 

,然後讓函數返回的confirmMsg值:

function showConfirm() { 
    return confirm("Are you sure you want to Proceed?\n"); 
} 

這樣,當你的確認框返回false,您的表單沒有提交,但是當它返回true它確實。

編輯:根據您的意見,您尚未將PHP代碼添加到包含表單的頁面。你需要做的是,如果形式提交給自己:

if ($_SERVER['REQUEST_METHOD'] === 'POST') 
{ 
    // your php code 
} 
else 
{ 
    // your form code 
} 

現在你的數據庫的代碼將得到當窗體貼在表格將在一個正常的GET請求來顯示執行,。

+0

嗨,我知道如何獲得點擊提交按鈕後出現的確認,我已經這樣做:)我的意思是,用戶單擊確定後確認,我想要的值插入數據庫,但我怎麼做這個。 – user1304197 2012-03-31 21:40:07

+0

如果他們點擊取消,只需返回false,以便它不提交表單(假設這是你想要的)。 – BenOfTheNorth 2012-03-31 21:41:38

+0

@ user1304197如果您的表單被提交到包含您的php代碼的頁面,那麼這將自動發生。 – jeroen 2012-03-31 21:43:07

1

您實際上無法用javascript編寫php代碼。他們都運行在服務器端的不同端PHP和客戶端的JavaScript。

在你形成action屬性給喜歡動作=「add.php」,也是一個PHP頁面點名方法無論是職位或得到

然後在你的服務器創建一個新的文件add.php。並在那裏寫你的PHP代碼。

<?php 
    session_start(); 

    $username="xxx"; 
    $password="xxx"; 
    $database="xxx"; 

    mysql_connect('localhost',$username,$password); 

    @mysql_select_db($database) or die("Unable to select database"); 

      $sql = "INSERT INTO Media (Image, Video, Audio) 
       VALUES (' ". mysql_real_escape_string($image) . "', 
    ' ". mysql_real_escape_string($_POST['video']) . "',' ". mysql_real_escape_string($_POST['$audio']) . "')"; 


      mysql_query($sql); 
     mysql_query($sql); 

mysql_close(); 

?> 

您可以訪問使用$ _GET或$ _POST取決於由您提交表單方法形式。

如果您需要進一步的參考,那麼你可以通過這個http://coredogs.com/lesson/form-data-php

最佳 迪帕克

+0

嗨,我包括我的整個代碼,所以如果你想正確地看看它,那麼你可以解密。我會仔細查看你的答案和手冊,看看我是否可以解決這個問題。 – user1304197 2012-03-31 22:13:00

+0

我想提到的事情是,雖然我想將值插入到數據庫中,但我不想將用戶導航到他們所在的頁面。我希望在確認後將值插入到數據庫中但我希望它允許用戶保留在同一頁面上或根據表單'action'導航到create_session2.php。那有意義嗎? – user1304197 2012-03-31 22:15:54

相關問題