2011-08-30 27 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