PDA

View Full Version : giúp mình về phương thức post và get trong Joomla 1.5



yatyao
05-06-2010, 11:13
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!

honnhienh
05-06-2010, 16:47
bạn viết code lạ quá. sao lại viết chung cả zậy. Mình cúng là newbie trong joomla thôi. mới thử gửi cái select lên thấy vẫn nhận được mà. TRong 2 cái file này cái nào là controler bạn. mình là cũng mới lên đọc hog biết cái nào là controler cái nào là view. hic.

yatyao
05-06-2010, 22:28
http://www.mediafire.com/?yewfykztduj

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!

honnhienh
05-06-2010, 22:33
ok. mình làm thử, minh cũng dang hoc code component mà. chua cho minh cai bang csdl de minh chay chu. Cái bảng đó thôi nha.

yatyao
06-06-2010, 07:04
http://www.mediafire.com/?zd2kvygwzz3
đâ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!

honnhienh
06-06-2010, 08:43
cái này là do bạn làm cái form bi sai lên mới bị tình trang như zậy. theo code bạn viết thi việc tạo ra hàng loạt

<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.

yatyao
06-06-2010, 09:22
mình đã hiểu được vấn đề rồi! tks bạn nhiều!:)