|
|
|
เมื่อส่งค่าด้วย ajax ไปให้เพจแล้ว จะให้ เพจที่อยู่ใน iframe แสดงยังไงครับ |
|
|
|
|
|
|
|
หากฟังก์ชั่น $.ajax ส่งค่าำไปที่ไฟล์ปลายทางได้สมบูรณ์ โดยไม่มีปัญหา
ค่าจะถูกส่งกลับผ่านมายังตัวแปร data ที่อยู่ในฟังชั่น success(function(data){})
เราสามารถนำ data มาใช้งานได้ต่อไป
เราสามารถระบุรูปแบบของข้อมูลที่ต้องการให้ส่งกลับมาได้ โดยใช้ dataType: 'script',
ถ้าเราไม่ได้ระบุ dataType ไว้ ตัว content (html) ทั้งหมดของไฟล์ปลายทางจะถูกส่งกับมา
นำ <iframe name="abc" width="1000" height="190" frameborder="1" src="test_page6.php"></iframe>
ไป echo ออกที่ไฟล์ test_page6.php
แล้วเปลี่ยนโค้ดตามตัวอย่างด้านล่าง
Code (JavaScript)
<table id="mytb" width="700" border="1" cellspacing="0" cellpadding="0">
<tr>
<td id="output"></td>
</tr>
</table>
Code (JavaScript)
$("#btn1").click(function(){
$.ajax({
url: "test_page6.php" ,
type: "POST",
data: 'keyword=' +$("#txtpassword").val()
}).success(function(data) {
$('#output').html(data);
});
});
|
|
|
|
|
Date :
2012-11-12 07:36:33 |
By :
dreamlover |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
นี่คือ ไฟล์ test_page6.php ทั้งเพจ
ผมจะ ifram echo ส่วนไหนของเพจดีครับ
เป็น เพจ แก้ไขในหน้าเดียวกัน
Code (PHP)
<?
if(move_uploaded_file($_FILES["filUpload"]["tmp_name"],"myfile/".$_FILES["filUpload"]["name"]))
{
$objConnect = mysql_connect("localhost","root","784512") or die(mysql_error());
$objDB = mysql_select_db("mydatabase");
$strSQL = "UPDATE tb_image1 SET ";
$strSQL .="F5 = '".$_FILES["filUpload"]["name"]."' ";
$strSQL .="WHERE menu = '".$_POST["txtid"]."' ";
$objQuery = mysql_query($strSQL);
}
?>
<?
$objConnect = mysql_connect("localhost","root","784512") or die(mysql_error());
$objDB = mysql_select_db("mydatabase");
$strSQL = "UPDATE tb_image1 SET ";
$strSQL .="F6 = '".$_POST["txtdiscription"]."' ";
$strSQL .=",F7 = '".$_POST["txtprice"]."' ";
$strSQL .=",F8 = '".$_POST["txtoder"]."' ";
$strSQL .="WHERE menu = '".$_POST["txtid"]."' ";
$objQuery = mysql_query($strSQL);
?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-874" />
<title>Untitled Document</title>
</head>
<body>
<?
$objConnect = mysql_connect("localhost","root","784512") or die(mysql_error());
$objDB = mysql_select_db("mydatabase");
$strSQL = "SELECT * FROM tb_image1 where password = '".$_POST["keyword"]."' or '".$_POST["txtpass"]."' order by id desc limit 5 ";
$objQuery = mysql_query($strSQL)or die ("Error Query [".$strSQL."]");
$objResult = mysql_fetch_array($objQuery)
?>
<form name="frmMain" method="post" action="test_page6.php" enctype="multipart/form-data">
<table width="800" border="0" align="center" cellpadding="0" cellspacing="2">
<tr bgcolor="#CCCC99" style="cursor:pointer;">
<td width="150" bgcolor="#EBEBD8"><div align="center"><a href="link_1.php?CusID=<?=$objResult["password"];?>&ID=<?=$objResult["F5"];?>"><img src="myfile/<?=$objResult["F5"];?>" width="150" heigth="50"></a></div></td>
<td height="20" bgcolor="#EBEBD8"><?=$objResult["F6"];?><?=$i?></td>
<td width="80" bgcolor="#EBEBD8"><?=$objResult["F7"];?></td>
<td width="80" bgcolor="#EBEBD8"><?=$objResult["F8"];?></td>
<td width="50" align="center" bgcolor="#EBEBD8" onClick="$('#tr_toggle2').toggle();" >EDIT</td>
</tr>
<tr style="display:none;" id="tr_toggle2">
<td align="left" bgcolor="#F8F8EF">
<input type="file" name="filUpload" size="1" value="<?=$objResult["F1"];?>"/>
</td>
<td align="left" bgcolor="#F8F8EF">
<input type="hidden" name="txtid" value="<?=$objResult["menu"];?>" />
<input type="hidden" name="txtpass" value="<?=$objResult["password"];?>" />
<input type="text" name="txtdiscription" size="8" value="<?=$objResult["F6"];?>" /><?=$i?>
</td>
<td align="left" bgcolor="#F8F8EF">
<input type="text" name="txtprice" size="2" value="<?=$objResult["F7"];?>" />
</td>
<td align="left" bgcolor="#F8F8EF">
<input type="text" name="txtoder" size="2" value="<?=$objResult["F8"];?>" />
</td>
<td align="center" bgcolor="#F8F8EF">
<input type="submit" name="btnUpdate" value="Update">
</td>
</tr>
</table>
</form>
<?
mysql_close($objConnect);
?>
<script type="text/javascript" src="http://code.jquery.com/jquery-latest.min.js"></script>
</body>
</html>
|
|
|
|
|
Date :
2012-11-12 19:07:39 |
By :
BABANGYAI |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
จากคำถามที่คุณถามมา "ตรงหลัง .success(function() { ให้ iframe แสดง"
คุณต้องการให้ iframe แสดงอะไร และแสดงออกที่ไหน?
|
|
|
|
|
Date :
2012-11-12 20:38:37 |
By :
dreamlover |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ให้ iframe แสดงหรือรัน เพจ test_page6.php ทั้งเพจ ที่ได้ส่งค่า keyword ไป
ให้แสดงหน้าเดียวกันกับ หน้า ajax ที่ส่งค่าไป
หรือแสดงหน้าอื่นก็ได้ แต่ ifram จะต้องรัน เพจ test_page6.php เหมือนกับการ ลิ้งค์ส่งค่าไปให้เพจ และลิ้งค์ก็ target ให้ iframe
แสดงเพจนั้น
แต่ ajax จะส่งค่ากับมาให้ ifram แสดงเพจนั้น เหมือนกับ การส่งลิ้งค์ ไม่รู้จะได้ป่าวครับ
|
|
|
|
|
Date :
2012-11-12 21:02:54 |
By :
BABANGYAI |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
เราใช้ <iframe> ในการดึงข้อมูลหรือไฟล์จากที่อื่นมาแสดงในหน้าเว็บที่ <iframe> อยู่
ในเมื่อตัวแปร data อยู่ในหน้าเดียวกัน การแสดงผลด้วย <iframe> คงเป็นไปไม่ได้
ใช้โค้ดอย่างที่ผมให้ไป ไม่ต้อง echo <iframe> มาจากไฟล์ test_page6.php แล้วครับ
ข้อมูล content ทังหมดจากไฟล์ test_page6.php ควรจะมาแสดงที่ <td id="output"></td> ได้เองไม่มีปัญหา
ลองดูก่อนแล้วค่อยว่ากันอีกที
|
|
|
|
|
Date :
2012-11-12 21:39:45 |
By :
dreamlover |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Code (PHP)
$("#btn1").click(function(){
$("iframe[name='abc']").attr("src","test_page6.php?keyword="+$("#txtpassword").val());
});
|
|
|
|
|
Date :
2012-11-13 13:54:41 |
By :
sakuraei |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
แล้วในไฟล์ test_page6.php ก็ใช้ตัวแปรแบบ $_GET ครับ
|
|
|
|
|
Date :
2012-11-13 14:00:37 |
By :
sakuraei |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
output ออกแล้วครับ
แต่พอกด แก้ไขตรงoutput มันกระโดดไปเพจ ที่ output ออกมา
เพราะตรง output เป็นโค้ดแก้ไข หน้าเดียวกัน
|
ประวัติการแก้ไข 2012-11-15 13:21:27
|
|
|
|
Date :
2012-11-15 13:19:50 |
By :
BABANGYAI |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
เพราะว่า action="test_page6.php" ยังไงก็ต้องกระโดดไปนี้หน้านี้
ฟังก์ชั่น $.ajax(); ใช้ในการผ่านค่าไปยังไฟล์ปลายทางโดยไม่เปลี่ยนไปหน้านั้น แต่ส่งค่า feedback กลับมาให้ใช้
ถ้าต้องการผ่านค่าและเปลี่ยนไปหน้านั้น เืพื่อทำงานอย่างอื่นต่อ น่าจะใช้ ระบบของ form ปกติ อาจตรงความต้องการมากกว่า
Code (JavaScript)
<form action="test_page6.php" method="post">
<input type="hidden" name="txtpassword" value="<?=$objResult["password"];?>" />
<input type="submit" id="btn1" value="Submit">
</form>
|
|
|
|
|
Date :
2012-11-15 14:20:40 |
By :
dreamlover |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
เมื่อก่อนผมจะให้รายการวนลูปออกมา ด้วยลิ้งเดียว
แต่ต้องการ แก้ไข สักรายการ ก็อยากให้ รีเฟรช เฉพาะรายการนั้น
เลยเขียน แยกไว้ แต่ละรูป แยกไว้ แต่ละเพจ เลย
เลยคิดว่าน่าจะ รีเฟรช เฉพาะที่ได้
เลยใช้ ajax ส่งไปแต่ละหน้า แล้วดึงมาไว้หน้าเดียวกัน
ที่ยกตัวอย่างมา แค่ให้ ajax เรียกกลับมาหน้าเดียว ก่อน
พอเรียกมาได้ ก็แก้ไขแล้วรีเฟรชเฉพาะที่ไม่ได้ เพราะแยกเพจไว้แต่ละรูปเลย
แต่ iframe จะทำได้ แต่ก้ติดตรง ลิ้งส่งค่า เข้าไปหา iframe ไม่ได้
|
|
|
|
|
Date :
2012-11-15 19:43:57 |
By :
BABANGYAI |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
สรุปตอนนี้กำลังทำตามโค้ดชุดไหนอยู่ครับ
|
|
|
|
|
Date :
2012-11-15 21:31:39 |
By :
sakuraei |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ที่คุณทำอยู่เป็นความคิดที่น่าสนใจดีครับ
ผมลองดูหลายวิธีแล้ว ยังไม่สามารถเอาเรียกข้อมูลเข้ามาใน iframe ผ่าน $.ajax() ไ้ด้
ทีนึกออกตอนนี้มีอยู่อย่างหนึ่งคือ คุณอาจลองทดสอบโดยใช้ตัวแปร Session เก็บค่าของ keyword ดู
ตอนนี้ยังช่วยแ้ก้ไขปัญหาให้ไม่ได้นะครับ ความรู้ยังมาไม่ถึุง
|
|
|
|
|
Date :
2012-11-16 08:59:51 |
By :
dreamlover |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ใช่ครับ
|
|
|
|
|
Date :
2012-11-16 17:33:17 |
By :
sakuraei |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ของคุณ unidentifier น่าจะได้ครับ
ขอลองส่งไป หลายๆ เพจ ก่อน
|
|
|
|
|
Date :
2012-11-17 17:15:46 |
By :
BABANGYAI |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
เยี่ยมมาก ครับ โค้ดของคุณ unidentifier
สามาถทะลุ ทะลวง iframe ของผมได้
และก็ส่งได้หลายหน้าพร้อมกัน
ขอบคุณมากมาย เลยครับ
แต่อีกนิดนครับ จะส่งสองค่ายังไงครับ ต่อ keywordไปเลยหรือป่าวครับ
$("#btn1").click(function(){
$("iframe[name='abc']").attr("src","test_page6.php?keyword="+$("#txtpassword").val());
});
|
ประวัติการแก้ไข 2012-11-17 20:13:12
|
|
|
|
Date :
2012-11-17 19:04:34 |
By :
BABANGYAI |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 05
|