10/10/2018, 10:32
giúp mình về phương thức post và get trong Joomla 1.5
Mình xây dựng 1 component tên là hientrang có 2 file php như sau:
hientrang.php
<?php
defined('_JEXEC') or die('Restricted access');
require_once (dirname(__FILE__).DS.'htphp.php');
$fastMessage = hientrang::addht($params);
$db =& JFactory::getDBO();
$query = "SELECT * FROM #__dangky ORDER BY #__dangky.giodk";
$db->setQuery( $query );
$result = $db->query();
$user =& JFactory::getUser();
$usr_id = $user->get('id');
$dbx =& JFactory::getDBO();
$q1 = "SELECT * FROM #__users WHERE id = $usr_id";
$dbx->setQuery( $q1 );
$resultx = $dbx->query();
$ry = mysql_fetch_array ($resultx);
?>
<script language="javascript">
function getdetail()
{
document.hientrang.submit();
}
</script>
<div id="addhientrangForm">
<form ...
<select name="trangthai" onchange="getdetail()" >
<option value="Yes">Yes</option>
<option value="No">No</option>
<option value="Not">Not</option>
</select>
</td>
..
</form>
</div>
và trang htphp.php
<?php
defined('_JEXEC') or die('Restricted access');
//require_once (JPATH_SITE.DS.'components'.DS.'com_content'.DS.'h elpers'.DS.'route.php');
class hientrang
{
function addht($params)
{
$db =& JFactory::getDBO();
$trangthai = JRequest::getVar('trangthai', 'Not Given', 'POST');
$check = JRequest::getVar('check', 'Not Given', 'POST');
echo "$trangthai </br>";
echo "$check";
$query = "UPDATE #__dangky SET trangthai = $trangthai WHERE Madk = $check";
$db->setQuery($query);
$result = $db->query();
}
}
?>
ban đầu trang hientrang.php sẽ được gọi lên, sau đó truyền tham số trả về cho trang htphp.php. Vấn đề ở đây là chỗ select mình đã truyền tham số qua được, nhưng nó chỉ nhận mỗi value Yes mà thôi!, mình mỗi khi chọn 1 option thì sẽ ra 1 value tương ứng!
MOng các bạn xem giúp dùm mình! Chân thành cảm ơn!
hientrang.php
<?php
defined('_JEXEC') or die('Restricted access');
require_once (dirname(__FILE__).DS.'htphp.php');
$fastMessage = hientrang::addht($params);
$db =& JFactory::getDBO();
$query = "SELECT * FROM #__dangky ORDER BY #__dangky.giodk";
$db->setQuery( $query );
$result = $db->query();
$user =& JFactory::getUser();
$usr_id = $user->get('id');
$dbx =& JFactory::getDBO();
$q1 = "SELECT * FROM #__users WHERE id = $usr_id";
$dbx->setQuery( $q1 );
$resultx = $dbx->query();
$ry = mysql_fetch_array ($resultx);
?>
<script language="javascript">
function getdetail()
{
document.hientrang.submit();
}
</script>
<div id="addhientrangForm">
<form ...
<select name="trangthai" onchange="getdetail()" >
<option value="Yes">Yes</option>
<option value="No">No</option>
<option value="Not">Not</option>
</select>
</td>
..
</form>
</div>
và trang htphp.php
<?php
defined('_JEXEC') or die('Restricted access');
//require_once (JPATH_SITE.DS.'components'.DS.'com_content'.DS.'h elpers'.DS.'route.php');
class hientrang
{
function addht($params)
{
$db =& JFactory::getDBO();
$trangthai = JRequest::getVar('trangthai', 'Not Given', 'POST');
$check = JRequest::getVar('check', 'Not Given', 'POST');
echo "$trangthai </br>";
echo "$check";
$query = "UPDATE #__dangky SET trangthai = $trangthai WHERE Madk = $check";
$db->setQuery($query);
$result = $db->query();
}
}
?>
ban đầu trang hientrang.php sẽ được gọi lên, sau đó truyền tham số trả về cho trang htphp.php. Vấn đề ở đây là chỗ select mình đã truyền tham số qua được, nhưng nó chỉ nhận mỗi value Yes mà thôi!, mình mỗi khi chọn 1 option thì sẽ ra 1 value tương ứng!
MOng các bạn xem giúp dùm mình! Chân thành cảm ơn!
Bài liên quan
rất vui vì bạn đã quan tâm tới vấn đề của mình! mình có gửi 2 file đính kèm. Đầu tiên mình sẽ gọi trang hientrang.php ra trước, sau đó trong trang hientrang.php có 1 phần đó là combobox, khi người ta chọn yes hoặc no, trang hientrang.php sẽ tự động submit và đưa dữ liệu vào MySql thông qua trang htphp.php!
Vấn đề mình gặp phải ở đây chính là dữ liệu nhận được từ combobox chỉ có 1 giá trị cho dù mình chọn no hay not nó vẫn ra value là yes!?!?
Rất mong được sự giúp đỡ từ các bạn!
đây là 2 file sql components và sql đăng ký hiện trạng! Bạn có thể add yahoo để mình tiện nói chuyện được không? nick mình là: phanmanhhung1985@yahoo.com!
Cám ơn bạn nhiều!
<select name="trangthai" onchange="getdetail()" >
<option value="Yes">Yes</option>
<option value="No">No</option>
<option value="Not">Not</option>
</select>
trong một form do đó việc bạn nhận giá trị
$trangthai = JRequest::getVar('trangthai', 'Not Given', 'POST');
Mình không thể biết là nó gủi cái select box nào lên do đó giá trị mình không biết nó là của cái nao. theo mình nghĩ nó là của cái cuối cùng.
còn $check = JRequest::getVar('check', 'Not Given', 'POST'); vẫn đúng vì nó là check box giá trị gủi lên theo array không nếu nó cùng tên (mình không biết nhầm cái này hog làm biêng mở sách coi lại) nên bạn nhận được giá trị vẫn đúng.