ปรึกษาเรื่องการส่งตัวแปร php ใน ajax
ผมดาวโหลด script ajax calendar ในเว็บมา แล้ว ผมต้องการส่งค่าตัวแปร php ไปหน้า calendar.php จะเขียน script ยังไงครับ
//************************ หน้า index.php
<script type="text/javascript">
function Inint_AJAX()
{
try
{
return new ActiveXObject( "Msxml2.XMLHTTP" ); //IE
}
catch( e )
{
}
try
{
return new ActiveXObject( "Microsoft.XMLHTTP" ); //IE
}
catch( e )
{
}
try
{
return new XMLHttpRequest(); //Native Javascript
}
catch( e )
{
}
alert( "XMLHttpRequest not supported" );
return null;
};
function loadcalendar( query )
{
var req = Inint_AJAX();
req.open( "POST" , "calendar.php" , true );
req.onreadystatechange = function()
{
if ( req.readyState == 4 )
{
if ( req.status == 200 )
{
document.getElementById( 'calendar' ).innerHTML = req.responseText;
};
};
};
req.setRequestHeader( "Content-Type", "application/x-www-form-urlencoded" );
req.send( query );
};
</script>
//************************ หน้า index.php
<script type="text/javascript">
function Inint_AJAX()
{
try
{
return new ActiveXObject( "Msxml2.XMLHTTP" ); //IE
}
catch( e )
{
}
try
{
return new ActiveXObject( "Microsoft.XMLHTTP" ); //IE
}
catch( e )
{
}
try
{
return new XMLHttpRequest(); //Native Javascript
}
catch( e )
{
}
alert( "XMLHttpRequest not supported" );
return null;
};
function loadcalendar( query )
{
var req = Inint_AJAX();
req.open( "POST" , "calendar.php" , true );
req.onreadystatechange = function()
{
if ( req.readyState == 4 )
{
if ( req.status == 200 )
{
document.getElementById( 'calendar' ).innerHTML = req.responseText;
};
};
};
req.setRequestHeader( "Content-Type", "application/x-www-form-urlencoded" );
req.send( query );
};
</script>
ผมเขียนแบบนี้
req.open( "POST" , "calendar.php?id=<?=$id?>" , true );
มันไม่ส่งค่าไปอ่ะครับ
ที่หน้า calendar.php ผมก็รับค่า $_GET['id'] แล้วแต่ก็ไม่ได้ครับ
แต่ถ้า req.open( "POST" , "calendar.php?id=xxx" , true ); มันส่งได้ครับ
ขอบคุณครับ
นึกแล้วเชียวว่าต้องเจอคำถามนี้
req.open( "POST" , "calendar.php?id=<?=$id?>" , true );
ใช้ POST ในตอนส่ง ก็ต้องรับที่ $_POST สิครับ
ส่วนที่บอกว่าถ้าใช้ตัวแปรแล้วรับไม่ได้ แต่ถ้ากำหนดไปตรงๆ แล้วรับได้ ให้ลอง view source ดูครับ ว่าจริงๆแล้วค่าที่ echo ออกมาเมื่อ view source แล้ว เป็นไปตามที่ต้องการหรือไม่
โดยปกติ อาจพบว่า $id ไม่มีค่าในตอนเริ่มต้น มันก็เลยส่งไม่ไป