A-AA+then

สงสัยเรื่องปุ่ม onClick กับการเรียกการทำงานใน IFrame

2,003
ผมมี Java Script ที่เอาไว้เป็นตัวช่วยในการโหลด IFrame
Code (JavaScript)
<script type="text/javascript">
    function reloadIframe2(){
        var f = document.getElementById("exercisesdetailload1");
        f.src=f.src;
        
        var f = document.getElementById("exercisesdetailload2");
        f.src=f.src;
    }
</script>


ผมมีโค้ด exercisesdetailload2.php อยู่ใน IFrame
Code (PHP)
<iframe id="exercisesdetailload2" SRC="exercisesdetailload2.php?id=<?=$id ?>" width="235" height="628"  
marginwidth="0" marginheight="0" vspace="0" hspace="0" frameborder="0" align="middle" scrolling="yes"></iframe>


ผมมีปุ่มกด ตรวจสอบ 1 ปุ่ม
Code (PHP)
<input id="submit" type="submit" value="ตรวจสอบ" onClick="reloadIframe2()">


และมีโค้ด exercisesdetailload1.php อยู่ใน IFrame
Code (PHP)
<iframe id="exercisesdetailload1" SRC="exercisesdetailload1.php?id=<?=$id ?>" width="679" height="90"  
marginwidth="0" marginheight="0" vspace="0" hspace="0" frameborder="0" align="middle" scrolling="yes"></iframe>

หมายเหตุ โค้ดที่โพสอยู่ในไฟล์ exercises.php และเรียงลำดับกันแบบนี้เลย เพี่ยงแค่มีการนำไปใส่ในตาราง

คือผมอยากทำให้มันทำงานที่ไฟล์ exercisesdetailload1.php เสร็จก่อน แล้วค่อยไปทำ exercisesdetailload2.php อ่ะครับ
เพราะว่าตอนนี้มันเหมือนจะทำงานไปพร้อมๆกันผมลองทดลองหลายรอบแล้ว บางครั้งมันตรวจสอบ เก็บข้อมูล แล้วก็แสดงได้ ในการกดปุ่มตรวจสอบเพียงครั้งเดียว
แต่บางครั้งต้องกด 2 รอบ ซึ่งในรอบแรกส่วนแสดงผลมันก็ไม่แสดง แต่รอบสองมันก็แสดง ผมเลยสงสัยว่ามันทำงานพร้อมกันทั้ง 2 ไฟล์

ไฟล์ exercisesdetailload1.php มันมีหน้าที่ในการตรวจสอบข้อมูล ถ้าจริงมันก็จะเก็บลงในฐานข้อมูลครับผม
ไฟล์ exercisesdetailload2.php มันจะมีหน้าที่ในการแสดงผลอ่ะครับ

ขอคำชี้แนะด้วยนะครับผม

3 ความคิดเห็น

555++
คงเป็นแบบที่ว่าแหละครับ ถ้ามันทำงาน

เหตผลก็เพราะ คำสั่งที่ใช้ มันจะไม่รอกันครับ ทันที่ที่สั่ง iframe แรกเสร็จ มันก็จะทำ iframe2 ทันที โดยที่ไม่ได้รอให้ iframe แรกเสร็จ (คำสั่งมันแค่เรียก URL เท่านั้น)

ในทางปฏิบัติ ความคิดนี้ดูไม่ค่อยดีเท่าไร เนื่องจากยังมี อีก 2000 กว่าวิธีในการทำงาน วิธีที่ง่ายที่สุดก็คือ เมื่อเรียก iframe อันแรกแล้ว ก็ให้ include file จาก iframe ที่ 2 มาทำงานเลย โดยไม่ต้องใช้ iframe อะไรอีก

ว่าแต่ ทำไมต้อง iframe ผมว่า การ submit ธรรมดาก็ ok แล้วมั้ง หรืออาจใช้ Ajax ก้ได้
1

มันมีความจำเป็นนิดหน่อยอ่ะครับ
มันไม่มีวิธีจริงๆเหรอครบผม
2

อ้างจากคำตอบที่ #2มันมีความจำเป็นนิดหน่อยอ่ะครับ
มันไม่มีวิธีจริงๆเหรอครบผม

555+++
ผมเห็นว่ามีทางเลี่ยงอื่นเยอะแยะครับ ซี่งจริงๆแล้ว ผมไม่รู้เหตุผลก็เลยไม่สามารถแนะนำคำตอบที่ชัดเจนได้ เท่าที่คิดได้ คือไม่มีความจำเป็นต้องใช้วิธีดังกล่าวครับ

ถ้าจำเป็นจริงๆ ให้ใช้ event onload ของ iframe แรกครับ มาเรียก iframe2
3
^