สอบถามเรื่องการส่งค่ามากกว่าหนึ่ง โดยใช้ javascript

ถาม-ตอบ แนะนำไอเดียว โค้ดตัวอย่าง แนวทาง วิธีแก้ปัญหา สอบถามเรื่องการส่งค่ามากกว่าหนึ่ง โดยใช้ javascript

สอบถามเรื่องการส่งค่ามากกว่าหนึ่ง โดยใช้ javascript
function uploadPhoto(place,discipline,personID,otherdesc,idType,username) {
    // ตรวจสอบว่ามีการเลือกรูปแล้วหรือไม่
    var imageURI = $("#disimage").attr("src");
    var personID = $('#personID').val();
    var placeID = $('#placeID').val();
    var discipline =   $('#discipline input[name='dislist[]']:checked').map(function () { return this.value;}).get();
    if (!personID) {
        alert('กรุณากรอกข้อมูลให้ครบถ้วน');
        return;
    } 
    if (!discipline) {
        alert('กรุณากรอกข้อมูลให้ครบถ้วน');
        return;
    } 



    console.log(imageURI);
    var options = new FileUploadOptions();
    options.fileKey = "file";
    options.fileName = imageURI.substr(imageURI.lastIndexOf('/') 1);
    options.mimeType = "image/jpeg";
    var params = new Object();
    params.place = place;
    params.discipline = discipline;
    params.personID = personID;
    params.otherdesc = otherdesc;
    params.idType = idType;
    params.username = username;
    options.params = params;
    
    var ft = new FileTransfer();
       
    ft.upload(
        imageURI, 
        
            "http://sc4.kku.ac.th/discipline/KKUAPP/ins_dis.php", // path ไฟล์ php ฝั่ง server 
            win, 
            fail, 
            options
        );
 
    }


ส่งค่า  var discipline มากกว่า 1 ค่าส่งมาจาก html แล้วนะคะแต่พอเอา

    params.discipline = discipline;
    options.params = params;
แล้วส่งค่าไปที่ .php ลงดาต้าเบส ค่าที่บันทึกได้กลับเป็น 0 ตอนนี้เข้าใจว่า ติดปัญหาตรง 2 บรรทัดข้างต้นเพราะต้องเอาค่ามาเท่ากันไม่ได้ ต้องใช้วิธีไหนในการเซ็ตค่าให้สามารถเก็บได้หลาย Value แล้วส่งเข้าเบสได้โดยค่าไม่เป็น 0 ขอบคุณค่ะ


Pornpimon.t 180.183.20.xxx 17-05-2015 23:11:28

คำแนะนำ และการใช้งาน

สมาชิก กรุณา ล็อกอินเข้าระบบ เพื่อตั้งคำถามใหม่ หรือ ตอบคำถาม สมาชิกใหม่ สมัครสมาชิกได้ที่ สมัครสมาชิก


  • ถาม-ตอบ กรุณา ล็อกอินเข้าระบบ
  • เปลี่ยน


    ( หรือ เข้าใช้งานผ่าน Social Login )

 ความคิดเห็นที่ 1
รูปแบบโค้ดไม่น่าจะผิดอะไร คงต้องลองเช็คว่าแต่ละค่ามีการรับค่ามาจริงไหมก่อน 


ninenik 180.183.9.xxx 18-05-2015
 ความคิดเห็นที่ 2
มีการรับคาเข้ามาค่ะ เพราะลอง alert ดูค่า discipline ก็ขึ้นมาเป็น "11","12","13"

แต่พอเอา 
 params.discipline = discipline; แล้วยัดลง options.params = params; เพื่อส่งค่าไป server ค่าที่ลงเบสเป็น 0 
พอจะมีวิธีที่ให้ 
 params.discipline = discipline; รับค่าเป็น array ไหมค่ะ เข้าใจว่าจะติดปัญหาตรงนี้แหละค่ะ


pornpimon.t 202.28.118.xxx 18-05-2015 11:26
 ความคิดเห็นที่ 3
ถ้าตัวแปร discipline เป็นตัวเลข ให้ใช้วิธี ส่งค่าเข้ามา เป็นแบบ string แทน
ใช้รูปแบบ "11-12-13"  พอส่งค่าเข้าไปใน php ก็ใช้ explode แยกค่าเป็น array เอาไปใช้


ninenik 180.183.9.xxx 18-05-2015
 ความคิดเห็นที่ 4
มีตัวอย่างไหมค่ะ 


pornpimon.t 202.28.118.xxx 18-05-2015 11:39
 ความคิดเห็นที่ 5
สมมติส่งค่า 
<button onclick="uploadPhoto(place,'11-12-13',personID,otherdesc,idType,username)"></button>

<script type="text/javascript">
function uploadPhoto(place,discipline,personID,otherdesc,idType,username) {  
    params.discipline = discipline;  
}
</script>   

ส่วน php
 
<?php
$data_discipline=explode("-",$_POST['discipline']);
// ได้ตัวแปร array $data_discipline[0]..$data_discipline[1]...
?>


ninenik 180.183.9.xxx 18-05-2015
 ความคิดเห็นที่ 6
รับค่ามาจาก checkbox โดย getค่าแบบนี้ค่ะ
 $('#discipline input[name='dislist[]']:checked').map(function () { return this.value;}).get();
แล้วค่าที่ได้มันจะเป็น "11","12","13"
ถ้าจะรับมาเป็น text ต้องใช้คำสั่งอะไรค่ะ 


pornpimon.t 202.28.119.xxx 18-05-2015 12:11
 ความคิดเห็นที่ 7
ถ้าค่าจากใช้ map น่าจะได้เป็น array ลองใช้ คำสั่ง join ของ jvavascript ดู

var discipline =   $('#discipline input[name='...............
discipline=discipline.join("-");


ninenik 180.183.9.xxx 18-05-2015
 ความคิดเห็นที่ 8
ได้แล้วค่ะ ขอบคุณมาก ๆ ค่ะ 


pornpimon.t 202.28.118.xxx 18-05-2015 14:03
1






เว็บไซต์ของเราให้บริการเนื้อหาบทความสำหรับนักพัฒนา โดยพึ่งพารายได้เล็กน้อยจากการแสดงโฆษณา โปรดสนับสนุนเว็บไซต์ของเราด้วยการปิดการใช้งานตัวปิดกั้นโฆษณา (Disable Ads Blocker) ขอบคุณครับ