2011-08-30 42 views
0

我需要將某些表單值插入到數據庫表中,一旦用戶單擊按鈕並運行插入scrtip,我將如何創建一個函數來調用。如何在PHP中插入onsubmit

<form name="quiz_info" method="post"> 

<?php 
echo $this->quiz->title; 

echo $mainframe->getPageTitle(); 

echo '<p><input type="checkbox" id="checkToProceed" name="checkToProceed" onclick="proceed();" /> 

<label for="checkToProceed">' . JText::_('I have Read and Acknowledge the procedure'). '</label></p>' ; 

echo '<input id="proceedButton" name="proceedButton" disabled="true" value="' . JText::_('Acknowledge') . '" type="submit" />' ; 



//Declare Variables 

$user = JFactory::getUser(); 
$id = $user->get('id'); 
$name = $user->get('name'); 
$username = $user->get('username'); 
$department = $user->get('department'); 
$vardate = date("m/d/y : H:i:s", time());   
$courseTitle = $mainframe->getPageTitle(); 

$db = &JFactory::getDBO(); 

$query ="INSERT INTO `jos_jquarks_users_acknowledge` (course_name,user_id,employeeNumber,department,name,acknoledge,timeStamp) VALUES ($courseTitle,$id,$username,$department,$name,acknoledge,vardate)"; 
$db->setQuery($query); 
$db->query(); 

?> 

<input type="hidden" name="layout" value="default" /> 
<?php echo JHTML::_('form.token'); ?> 
</form> 
+0

'

>這夠了嗎?正如我所看到的,您誤解了PHP的工作方式。正如Zeta所說,它是服務器端語言和無狀態語言。 –

回答

0
<?php 
    if ($_POST['proceedButton'] != '') { 
     $user = JFactory::getUser(); 
     $id = $user->get('id'); 
     $name = $user->get('name'); 
     $username = $user->get('username'); 
     $department = $user->get('department'); 
     $vardate = date("m/d/y : H:i:s", time());   
     $courseTitle = $mainframe->getPageTitle(); 

     $db = &JFactory::getDBO(); 
     $query ="INSERT INTO `jos_jquarks_users_acknowledge`(course_name,user_id,employeeNumber,department,name,acknoledge,timeStamp) VALUES ($courseTitle,$id,$username,$department,$name,acknoledge,vardate)"; 
     $db->setQuery($query); 
     $db->query(); 
    } 
?> 

<form name="quiz_info" method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>"> 
    <?php echo $this->quiz->title; ?> 
    <?php echo $mainframe->getPageTitle(); ?> 
    <input type="checkbox" id="checkToProceed" name="checkToProceed" onclick="proceed();" /> 
    <label for="checkToProceed"><?php echo JText::_('I have Read and Acknowledge the procedure'); ?></label> 
    <input id="proceedButton" name="proceedButton" disabled="true" value="<?php JText::_('Acknowledge'); ?>" type="submit" /> 
    <input type="hidden" name="layout" value="default" /> 
    <?php echo JHTML::_('form.token'); ?> 
</form> 
+0

會失敗。 '<?php $ _SERVER ['PHP_SELF']; ?>評估爲空。 –

+0

你知道我的意思!編輯包括「回聲」..... – Mat

+0

不需要結束,如果? – Tony77

3

PHP在服務器端執行。如果您想在不重新加載頁面的情況下調用該函數,則必須使用AJAX調用,例如使用jQuery。

你可以通過谷歌找到數十億的教程。

+0

是的,這個網站應該是其中的一個:) [見這裏](http://meta.stackexchange.com/questions/5280/embrace-the-non-googlers) –

+0

我完全同意這個鏈接。我沒有深入細節的動機是我不確定這是海報尋找的答案。我不想花那麼多時間寫一個答案(對於一個初學者),而不是那些其他人寫得更好的技術。 –

0

PHP不能這樣工作。如果你想激活的形式你的PHP腳本提交,則需要提交表單的PHP頁面,並該頁面上把你的腳本,例如

<form action=submit.php method=post> 

    <input type=text name=text> 
    <input type=submit> 

</form> 

下一頁上submit.php

<?php 

    if (!empty($_POST['text'])) { //If the POST variable set by input named 'text' is not empty... 
     echo $_POST['text']; //Print it on the screen. 
    } else { //If it is empty 
     echo "No form submission detected"; //Print an error 
    } 

?> 

如果你想讓它沒有一個頁面重載的工作,你將不得不使用一些客戶端技術。最受歡迎的一個是AJAX