GORAGOD.com

freelance, web developer, web designer, hosting, domain name

ส่งค่าตัวแปรไม่ได้ ไม่มีค่าตัวแปร


<script type="text/javascript">

<!-- province -->

function Inint_AJAX() {

   try { return new ActiveXObject("Msxml2.XMLHTTP");  } catch(e) {} //IE

   try { return new ActiveXObject("Microsoft.XMLHTTP"); } catch(e) {} //IE

   try { return new XMLHttpRequest();          } catch(e) {} //Native Javascript

   alert("XMLHttpRequest not supported");

   return null;

};

function dochange(src, val) {

     var req = Inint_AJAX();

     req.onreadystatechange = function () {

          if (req.readyState==4) {

               if (req.status==200) {

                    document.getElementById(src).innerHTML=req.responseText; //รับค่ากลับมา

               }

          }

     };

     req.open("GET", "fileScript/local.php?data="+src+"&val="+val); //สร้าง connection

     req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded;charset=utf-8"); // set Header

     req.send(null); //ส่งค่า

}

window.onLoad=dochange('province', -1);    



<!-- display -->

var HttPRequest = false;



    function doCallAjax(Mode) {

    HttPRequest = false;

    if (window.XMLHttpRequest) { // Mozilla, Safari,...

    HttPRequest = new XMLHttpRequest();

    if (HttPRequest.overrideMimeType) {

    HttPRequest.overrideMimeType('text/html');

    }

    } else if (window.ActiveXObject) { // IE

    try {

    HttPRequest = new ActiveXObject("Msxml2.XMLHTTP");

    } catch (e) {

    try {

       HttPRequest = new ActiveXObject("Microsoft.XMLHTTP");

    } catch (e) {}

    }

    }

   

    if (!HttPRequest) {

    alert('Cannot create XMLHTTP instance');

    return false;

    }

 

    var url = 'customer.php';

    var pmeters = "tcusName="+encodeURI( document.getElementById("cusName").value) +

         "&torgName="+encodeURI( document.getElementById("orgName").value) +

         "&taddr="+encodeURI( document.getElementById("addr").value) +

         "&tprovince="+encodeURI( document.getElementById("province").value) +

         "&tamphur="+encodeURI( document.getElementById("amphur").value) +

         "&tdistrict="+encodeURI( document.getElementById("district").value) +

         "&tpostCode="+encodeURI( document.getElementById("postCode").value) +

         "&ttel="+encodeURI( document.getElementById("tel").value) +

         "&tfax="+encodeURI( document.getElementById("fax").value) +

           "&tMode="+ Mode;

   HttPRequest.open('POST',url,true);

   HttPRequest.setRequestHeader("Content-type", "application/x-www-form-urlencoded");

   HttPRequest.setRequestHeader("Content-length", pmeters.length);

   HttPRequest.setRequestHeader("Connection", "close");

   HttPRequest.send(pmeters);

   

   HttPRequest.onreadystatechange = function()

   {

     if(HttPRequest.readyState == 3)  // Loading Request

      {

       document.getElementById("mySpan").innerHTML = "Now is Loading...";

      }



     if(HttPRequest.readyState == 4) // Return Request

      {

       document.getElementById("mySpan").innerHTML = HttPRequest.responseText;

      }

   }

    }

</script>



<form name="frmMain" id="frmMain" style="width:auto;">

<table width="770" border="0" cellspacing="0" cellpadding="0">

      <tr>

        <td width="140"><div align="left" style="padding:5px;"><font size="2">ชื่อ-นามสกุล</font></div></td>

        <td><div align="left" style="padding:5px;">

          <input type="text" name="cusName" id="cusName" size="35" />

        </div></td>

        <td style="border-left:solid 1px #999999;" width="2" rowspan="9"></td>

        <td width="250" rowspan="9" valign="top"><div style="width:auto; height:auto; padding:10px;"><p style="font-weight:bold; color:#333333; padding-bottom:5px;">คำอธิบายการใช้งาน</p>

          <p style="padding-bottom:5px;">การใส่่ชื่อ+นามสกุล เท่านั้น ไม่ต้องใส่นาม ใช้1เว้นวรรคเพื่อแบ่งชื่อและนามสกุล</p>

          <p style="padding-bottom:5px;">ที่อยู่ ให้ใส่ที่อยู่ที่สามารถติดต่อได้</p><p style="padding-bottom:5px;">เบอร์โทรศัพท์และโทรสาร ต้องเป็นตัวเลขเท่านั้น จำกัด10ตัว ไม่เว้นวรรค เช่น 0123456789</p></div></td>

        </tr>

      <tr>

        <td><div align="left" style="padding:5px;"><font size="2">ชื่อสถานประกอบการ</font></div></td>

        <td valign="bottom"><div align="left" style="padding:5px;">

          <input type="text" name="orgName" id="orgName" size="35" />

        </div></td>

        </tr>

      <tr>

        <td><div align="left" style="padding:5px;">เลขที่</div></td>

        <td><div align="left" style="padding:5px;">

            <input type="text" name="addr" id="addr" size="20" />

        </div></td>

        </tr>

      <tr>

        <td><div align="left" style="padding:5px;">จังหวัด</div></td>

        <td><div align="left" style="padding:5px;"><font id="province"><select name="province"><option value="0">Select</option></select></font></div></td>

      </tr>

      <tr>

        <td><div align="left" style="padding:5px;">อำเภอ</div></td>

        <td><div align="left" style="padding:5px;"><font id="amphur"><select name="amphur"><option value="0">Select</option></select></font></div></td>

      </tr>

      <tr>

        <td><div align="left" style="padding:5px;">ตำบล</div></td>

        <td><div align="left" style="padding:5px;"><font id="district"><select name="district"><option value="0">Select</option></select></font></div></td>

      </tr>

      <tr>

        <td><div align="left" style="padding:5px;">รหัสไปรษณีย์</div></td>

        <td><div align="left" style="padding:5px;">

          <label>

          <input type="text" name="postCode" id="postCode" maxlength="5" size="10" />

          </label>

        </div></td>

      </tr>

      <tr>

        <td><div align="left" style="padding:5px;"><font size="2">เบอร์โทรศัพท์</font></div></td>

        <td><div align="left" style="padding:5px;">

          <input type="text" name="tel" id="tel" size="15" maxlength="10" />

        </div></td>

        </tr>

      <tr>

        <td><div align="left" style="padding:5px;"><font size="2">เบอร์โทรสาร</font></div></td>

        <td><div align="left" style="padding:5px;">

            <input type="text" name="fax" id="fax" size="15" maxlength="10" />

        </div></td>

        </tr>

     

      <tr>

        <td colspan="4">&nbsp;</td>

      </tr>

      <tr>

        <td>&nbsp;</td>

        <td colspan="3"><div align="left" style="padding:5px;">

          <input name="input" type="reset" value="Reset" class="button" />

          &nbsp;&nbsp;

          <input type="button" class="button" name="btnAdd" id="btnAdd" value="เพิ่ม" OnClick="JavaScript:doCallAjax('ADD');">

      </div></td>

      </tr>

    </table>

</form>



ค่าตัวแปร province amphur และ district มันส่งค่าไม่ได้อ่าครับ ขอรบกวนด้วยนะครับ


09 ก.ย. 2554 4 3,288

id หายครับ แอบงงนึดนึ่งข้างบน มี Inint_AJAX แต่ใน doCallAjax ถึงไม่เรียก Inint_AJAX ครับ
#1


ใส่  Inint_AJAX ตรงไหนอย่างไร ครับไม่รู้เรื่องเลย ajax ขอรบกวนอีกทีครับ


#2

ลอง alert(pmeters);  ออกมาดูก่อนส่งดีมั้ย ว่าค่าต่างๆใช่ที่ต้องการจะส่งหรือเปล่า



ถ้าใช่ ก็จะมี 2 สาเหตุที่รับไม่ได้ คือ

1. customer.php ไม่มีอยู่จริง

2. อ้าง path ไปยัง customer.php ไม่ถูก ลองระบุเป็น URL เต็ม



ถ้า customer.php มีแน่ๆ ระบุ path ถูกต้อง

ลอง print_r($_POST); ที่ customer.php ดู ว่าค่าที่ส่งไป เหมือนกับที่ alert ได้จากตอนแรกหรือเปล่า



ถ้าเหมือน เธออาจรับค่าไม่ถูกต้อง ให้รับค่าโดยใช้ $_POST เท่านั้น



ถ้าไม่เหมือน อาจมีปัญหาที่ header ที่เธอส่ง ให้ลองเอาออก (setRequestHeader ทั้งหลายที่เธอใส่ไว้) หรืออาจลองใส่แค่ Content-Type อันอื่นๆไม่ต้องใส่



#3


ลองตามที่อาจารย์บอกแล้วครับ ขึ้น undefined ครับ.


#4
ความคิดเห็น
ไฟล์อัปโหลด ชนิด jpg, jpeg ขนาดไฟล์ไม่เกิน 2M
^