เมนู

แสดงโพสต์

ส่วนนี้ให้คุณดูโพสต์ทั้งหมดของสมาชิกท่านนี้ (เฉพาะโพสต์ในส่วนที่คุณมีสิทธิ์เข้าถึง)

เมนู แสดงโพสต์

ข้อความ - BHunter

#1
ถามโปรแกรมเมอร์ที่มีประสบการณ์แล้วย้ายงาน เกี่ยวกับ portfolio หน่อยคับว่า
ถ้าบริษัทที่คุณทำที่เก่า มีนโยบายห้ามเปิดเผยความลับของงาน (เป็นเว็บแอ็พแบบintranet ใช้ในองค์กรอย่างเดียว)   คุณจะทำยังไงครับ  จะเอาอะไรไปใช้สมัครที่ใหม่ นึกไม่ออก
หรือแอบๆโชว์งานของบริษัทเก่า  ให้ที่ใหม่ดูนิดๆหน่อยๆ ไป  หรือใช้แค่ใบผ่านงาน เป็นตัวบอกอย่างเดียว
#2
ปกติฝั่งclient  html css javascript ในหน้า view เนี่ย แก้โค้ดปุ๊บ  refresh หน้าเว็บดูผลการเปลี่ยนแปลงได้เลย

แต่ฝั่ง serverside(ก็คือ C# นั้นแหละพวก controller model)  พอแก้โค้ดแล้วrefresh ดูการเปลี่ยนแปลงที่หน้าเว็บ  ดันไม่เปลี่ยนตาม
ต้องมาเสียเวลาstop แล้ว run ใหม่

เลยอยากทราบว่ามีวิธีมั้ยครับ  ที่ไม่ต้องมาเสียเวลา stop แล้ว run ใหม่   แต่ให้ refresh ที่หน้าเว็บเอาได้เลย แบบพวกภาษา php
#3
ประมาณว่า if ทุกค่า เท่ากับ value ทีเดียวไปเลยน่ะคับ   ไม่ต้องมาเขียน  A == value && B ==value && C == value

if(A && B  && C  == 'somevalue' )
        {
            alert("Hello");
        }

#4
ขอแก้ทู้นิดนึงนะคับ คือ แบบว่าอารมณ์เหมือนไปซุ่มฝึกเขียน ASP.net จนเป็นระดับนึง แล้วทำผลงานออกมาโปรแกรมนึง แล้วค่อยไปสมัครงานใหม่นะคับ
ไม่ใช่ว่าไม่เป็นเลย
#5
สวัสดีครับ ไม่รู้ตั้งถูกหมวดป่าว
พอดีเขียนพวก PHP javascript CSS  SQL ไรพวกนี้ มาอะครับ  
ทีนี้สงสัยว่าถ้าเปลี่ยนมาเขียน C# ASP.net (web)   น่ะคับ โดยไปซุ่มฝึกเขียนจนเป็นระดับนึง และได้ผลงานออกมาเว็บนึง แล้วไปสมัครงานที่บริษัทใหม่
สมมติว่าเคยเป็นSenior งี้  จะต้องไปstartที่ตำแหน่ง Junior ของC# ใหม่เลยไหมคับ  หรือเงินเดือนลดลงอะไรทำนองนี้น่ะคับ? หรือว่าเป็นSenior ต่อได้เลย

ใครเคยมีประสบการณ์แบบนี้ แชร์ทีค้าบ

ขอบคุณครับ
#6
พอดีโปรเจคที่ทำ เป็นเกี่ยวกับการโชว์ตารางสอน หลายๆตาราง(วนลูป) โชว์ในหน้าexcel
ซึ่งก็เลยมีหลายTable (ตามจำนวนloop)

แต่ปัญหาคือ ตอนที่มี 1 table ก็กำหนดความกว้าง ของ<td> ได้ตามปกตินะ แต่พอ 2 table ขึ้นไป ก็กำหนดไม่ได้ซะงั้น

เลยอยากทราบว่าพี่ๆพอจะมีวิธีแก้ไหมครับ
ปล. (ผมลองใช้ทั้งattribute width กับcss width : ... px ไปละคับ)

<?php
header
("Content-Type: application/vnd.ms-excel; charset=TIS-620");
header('Content-Disposition: attachment; filename="report_schedule_teacher.xls"');#ชื่อไฟล์

?>


<html>
<head>


</head>
<body>

<table width="100%" style="border-collapse: collapse;overflow:wrap; font-size:9pt;">
<thead>
<tr>
<td width="300">Hello1</td>
<td width="400">Hello2</td>
</tr>
</thead>
<tbody>
<tr>
<td>World1</td>
<td>World2</td>
</tr>
</tbody>
</table>

<table width="100%" style="border-collapse: collapse;overflow:wrap; font-size:9pt;">
<thead>
<tr>
<td width="300">Why I cannot set width if I have multiple table</td>
<td width="400">Noooo</td>
</tr>
</thead>
<tbody>
<tr>
<td>kub</td>
<td>pom</td>
</tr>
</tbody>
</table>


</body>
</html>
#7
พอดีทำหน้าที่เป็น ms word ด้วย php อยู่ใช้ พวก header ให้userเข้ามาดาวน์โหลดเป็น ms word ออกไป  

header ('Content-type: text/html; charset=tis-620');

header("Content-type: application/vnd.ms-word");
header("Content-Disposition: attachment;Filename=file_".date('Ymd').".doc");

แต่ทีนี้ font ที่ใช้เป็น TH Saraban ซึ่งโดยทั่วไป user ต้องไป ดาวน์โหลดมาติดตั้งในเครื่องก่อน ถึงจะเห็นfont จริงๆ เลยอยากรู้ว่ามีวิธีเขียน fontให้user เห็นได้เลยป่าวครับ โดยที่ไม่ต้องให้ user ไปหาfont นั้นมาใส่ในเครื่อง

ผมลอง @font-face ของcss3 ละ ไม่ได้ผลแหะ  สงสัยcss3 ใช้ไม่ได้ผลกับ ms word
#9
ปกติแล้วพวกinput ที่ใช้jquery ในการกดปุ่มเพิ่มinput ได้เรื่อยๆนี่

ถ้าในหน้าINSERT ก็มีinput type=text มาอันนึง พร้อมมีปุ่ม+ อยู่ข้างๆ ให้กด  แล้วinput type="text" ก็จะเพิ่มมาเรื่อยๆ แล้วก็วนloop insert เข้าdatabase    

ทีนี้ในหน้าEDIT form จะทำไงครับ ให้update/edit  ข้อมูลrowหลายๆ ในdatabaseเหล่านั้นได้   นึกไม่ออกเลยครับ   แล้วหน้าตาUI ในหน้าeditนี่คือ ต้องโชว์จำนวน input type=text ตามจำนวน row ที่insert ไปแล้วถูกมั้ยครับ   ไม่ใช่โชว์แค่inputเดียวแบบตอนหน้าinsert  

#10
ทำยังไงให้เมื่อเลือก radio button ใน jquery popup แล้วจะทำการใส่ค่าในinput ครับ

ไม่รู้ผิดตรงไหนครับ

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <link rel="stylesheet" href="//code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css">
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
    <script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>
    <script>
    $(function() {

                $( "#MyDialog" ).dialog({
                    autoOpen: false,
                    height: 600,
                    width: 850,
                    modal: true,
                    buttons: {
                        "Save": function() {

                            $('.shirt_type').on('change', function(){
                              if(this.value == 1){
                                $('#sh_type').val("Hello");
                              }
                              if(this.value == 2)
                              {
                                $('#sh_type').val("World");
                              }
                              if(this.value == 3)
                              {
                                $('#sh_type').val("Yes");
                              }
                              if(this.value == 4)
                              {
                                $('#sh_type').val("Wow");
                              }
                            });
                           
                            $( this ).dialog( "close" );
                        },
                        "Cancel": function() {
                            $( this ).dialog( "close" );
                        }
                    },
                    close: function() {
                        $('.shirt_type').val("");
                    }
                });

                $( "#choose_shirt" ).click(function() { $( "#MyDialog" ).dialog( "open" ); });
            });
        </script>
</head>
<body>
    <div id="MyDialog" title="Create Name">
   
    1<input type="radio" class="shirt_type" name="type" value="1" checked>
   
    2<input type="radio" class="shirt_type" name="type" value="2">
       
    3<input type="radio" class="shirt_type"  name="type" value="3">
         
    4<input type="radio" class="shirt_type"  name="type" value="4">
    </div>

   <button id="choose_shirt"> Pop Up </button>

    <table>
        <tr>
            <td>แบบเสื้อ :</td>
            <td><input type="text" id="sh_type" name="shirt_type" /></td>
        </tr>
         
   
    </table>
</body>
</html>
#11
สวัสดีครับ
ใช้ Codeigniter อยู่ + facebook php sdk version.3.2.3
พอดีทำหน้า login facebook น่ะครับ มีอยู่ด้วยกัน 4 หน้า (1. login page 2.register page 3.login special member page 4.register special member page)

แล้วในไฟล์ view 4 ไฟล์ ที่ว่า  จะต้องมีโค้ดที่ setup ค่าเริ่มต้น facebook (ใส่appid appsecret)

<?php require_once(APPPATH.'libraries/facebook/src/facebook.php');
$facebook = new Facebook(array(
  
"appId"  => "xxxxxxxxxxxxxxx",
  
"secret" => "xxxxxxxxxxxxxxxxxxxxxxxx",
));


$user $facebook->getUser();


ปัญหาคือ ถ้าวันหลังเกิดต้องเปลี่ยน appid appsecret จะต้องเปลี่ยนทั้ง 4 ไฟล์viewนี้เลย  ซึ่งไม่น่าจะดีเท่าไร

ผมเลยสร้างไฟล์viewใหม่ ชื่อ "fb_init.php" ที่เก็บโค้ดพวกนี้ไว้

<?php require_once(APPPATH.'libraries/facebook/src/facebook.php');
    
$facebook = new Facebook(array(
      
"appId"  => "xxxxxxxxxxxxx",
      
"secret" => "xxxxxxxxxxxxxxxxxxxxxxxxxxx",
    ));


    
$user $facebook->getUser();


จากนั้นใน ไฟล์view 4 ไฟล์ ที่ว่าก็เขียน include view แบบนี้

$this->load->view('fb_init.php');

ปรากฎว่าเกิดerror ว่าไอโค้ดfacebook ที่เหลือไม่สามารถอ้างอิงถึงตัวแปร $user ได้
โค้ดที่เหลือของfacebookก็ประมาณนี้ครับ

  if ($user) {
     try {
       // Proceed knowing you have a logged in user who's authenticated.
       $user_profile = $facebook->api('/me?fields=id,email,name,first_name,last_name,picture'); //ต้องมีหลัง /me ไม่งั้นประวัติมาไม่ครบ
     } catch (FacebookApiException $e) {
       error_log($e);
       $user = null;
     }
   }

$loginUrl = $facebook->getLoginUrl(array(  
   "redirect_uri"=>"http://www.club55.net/login",  
   "scope"=>"email"
 ));


ทำไงดีครับพี่ๆ :wanwan017:  หรือถ้าพี่มีวิธีที่ดีกว่า แนะนำด้วยครับ  ผมว่าผมเขียน code facebook ในview น่าจะไม่ถูกหลักเท่าไร
#12
อ้างถึงจาก: userhuman ใน 12 มกราคม 2017, 16:04:28
ก็ใช้ Ajax ก็ได้ครับ เช็คว่าเวลาเลื่อนถึง ล่างเว็บไซต์ ให้เรียก ajax มาทีละรูป เช็คก่อนว่าตอนนี้รูปสุดท้ายอยู่ที่ไอดีเท่าไร แล้วดึงไอดีต่อไปมาแล้ว Append เข้าไปครับ

:wanwan002:
ไม่ใช่ครับ อยากได้แบบเลือกโหมดแสดงผล 2 แบบ ได้อะครับ
#13
http://www.nekopost.net/manga/2828/2

ตัวอย่างก็ตามลิงค์ด้านบนเลยครับ มันจะมีให้ปรับโหมดการแสดงผลทางขวาบน  

อยากทราบว่าเขียนโดยใช้ภาษา PHP jquery js นี่แนวการทำจะทำยังไงดีครับ ที่จะง่ายที่สุด โดยไม่ให้ url บน address bar เปลี่ยน

ใช้ onclick แล้วไป ajax .load  อีกไฟล์ ที่แสดงผลแบบทุกรูปอยู่หน้าเดียว มาทับหน้าไฟล์เดิมที่แสดงผลแบบแบ่งรูปๆเปนpagination รึป่าว หลังจากเปลี่ยนเป็นโหมดอ่านแบบทุกหน้าเรียงลงมา
หรือว่า if else รับค่า $_POST[full_page']  กับ $_POST['multi_page'] ที่ส่งมามีค่า   ก็แสดงอีกแบบนึง?

หรือยังไงดีครับถึงจะworkสุด ไม่แน่ใจว่าที่คิดน่ามันถูกรึป่าว

:wanwan017:

หมายเหตุ : ตอนนี้หน้าปัจจุบันสำหรับอ่านการ์ตูนของผม (ไฟล์php 1 ไฟล์)  แสดงการ์ตูนเป็นแบบหลายหน้าคับ  โดยใช้pagination ช่วย
ปล.ดึงรูปจาก mysql ครับ
#14
อ้างถึงจาก: gapgag55 ใน 08 มกราคม 2017, 16:52:04
ตอบตรงๆ ผมงงกับคำถามนะครับ555

เอาเป็นว่าผมทำให้รูปเรียงได้นะครับ

ผมเปลี่ยนจาก append เป็น prepend และใส่ \" เพิ่มครับ

https://jsbin.com/rohegedoya

หรือจะเปลี่ยน \" เป็นแบบนี้ก็ได้ครับ ES6


var html = `<div><img src='${e.target.result}' data-file='${f.name}' class='selFile' title='Click to remove'> <span class='delete_img'> DEL </span><br>${f.name}<br clear='left'/></div>`;




หมายถึง เราเลือกไฟล์รูปไป  แต่ตอนโชว์รูป มันจัดลำดับไม่ตรงตามที่เลือกไงครับ
#15
เรียนเซียน Javascript  :wanwan017: รบกวนดูโค้ดให้ทีครับว่าพลาดตรงไหน ใน่ส่วนของfunction handleFileSelect
พอเลือกหลายๆไฟล์แล้ว ดันไม่เรียงรูปpreviewให้  หมายถึง เราเลือกไฟล์รูปไป  แต่ตอนโชว์รูป มันจัดลำดับไม่ตรงตามที่เลือกครับ

<!doctype html>
<html>
<head>
<title>Proper Title</title>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/2.0.3/jquery.min.js"></script>
<style>
   #selectedFiles img {
       max-width: 200px;
       max-height: 200px;
       float: left;
       margin-bottom:10px;
   }
   .delete_img{
       cursor:pointer;
       color:red;
       font-size:14px;
       margin-left:10px;
   }
</style>
</head>

<body>

   <form id="myForm" method="post">

       Username: <input type="text" name="username" id="username"><br/>
       Email: <input type="text" name="email" id="email"><br/>
       Multiple Files: <input type="file" id="files" name="files[]" multiple><br/>

       <div id="selectedFiles"></div>

       <input type="submit">
   </form>



   <script>
   var selDiv = "";
   var storedFiles = [];

   $(document).ready(function() {
       $("#files").on("change", handleFileSelect);

       selDiv = $("#selectedFiles");
       $("#myForm").on("submit", handleForm);

       $("body").on("click", ".delete_img", removeFile);
   });

   function handleFileSelect(e) {
       var files = e.target.files;
       var filesArr = Array.prototype.slice.call(files);
       filesArr.forEach(function(f) {          

           if(!f.type.match("image.*")) {
               return;
           }
           storedFiles.push(f);

           var reader = new FileReader();
           reader.onload = function (e) {
               var html = "<div><img src=""   e.target.result   "" data-file='" f.name "' class='selFile' title='Click to remove'> <span class='delete_img'> DEL </span><br>"   f.name   "<br clear="left"/></div>";
               selDiv.append(html);

           }
           reader.readAsDataURL(f);
       });

   }

   function handleForm(e) {
       e.preventDefault();
       var username = document.getElementById('username').value; //get value จาก form input
       var email = document.getElementById('email').value;


       var data = new FormData();

       data.append('username', username); //มาใส่ในajax object formdata เพื่อเตรียมส่งเข้าฝั่งserver
       data.append('email', email);

       for(var i=0, len=storedFiles.length; i<len; i  ) {
           data.append('files[]', storedFiles[i]);  //อย่าลืม []
       }

       var xhr = new XMLHttpRequest();
       xhr.open('POST', 'upload.php', true);

       xhr.onload = function(e) {
           if(this.status == 200) {
               console.log(e.currentTarget.responseText);  
               //alert(e.currentTarget.responseText   ' items uploaded.');
               window.location = "http://www.google.com";
           }
       }

       xhr.send(data);
   }

   function removeFile(e) {
       var img = e.target.parentElement.querySelector("img")
       var file = img.getAttribute('data-file');
       for(var i=0;i<storedFiles.length;i  ) {
           if(storedFiles[i].name === file) {
               storedFiles.splice(i,1);
               break;
           }
       }
       $(this).parent().remove();
   }
   </script>

</body>
</html>
#16
อ้างถึงจาก: MD.18 ใน 18 ธันวาคม 2016, 13:29:11
เวลาเปิดในมือถือคุณว่าคุณมองเห็นอ่านรู้เรื่องไหมละ.... ถ้าไม่ทำ responsive

อีกเรื่องกูเกิ้ลฝากมาบอกว่า....
ทดสอบเมื่อวันที่ 18 ธ.ค. 2016 เวลา 13:21
หน้านี้ไม่เหมาะกับอุปกรณ์เคลื่อนที่
หน้านี้อาจใช้งานได้ไม่สะดวกบนอุปกรณ์เคลื่อนที่


คือต้องเข้าใจก่อนนะครับว่า responsive กับ position element  มันคนละเรื่องครับ
ที่ทุกวันนี้ชาวโลกเค้าใช้เว็บที่รองรับความยืดหยุนตามหน้าจอเพราะ  เค้าต้องการให้เนื้อหาอ่านได้ชัดเจนสะดวกในทุกๆหน้าจอครับ  ไม่ใช่เปิดในมือถือทีต้องมาลากซูมกันเอา จะไปดูเมนูซ้ายสุดทีก็เล่ือนไป ไปขวาสุดทีก็เลื่อนไป มันไม่สะดวกครับ

ส่วนตัวแล้วมันไม่โอเคครับ ทุกวันนี้ใครมาให้ทำเว็บแบบไม่ responsive ผมไม่รับครับ  :wanwan004:  

ขอบคุณมากครับ  
ขอถามเพิ่มนิดนึงครับ
มือถือมันกว้างแค่300 px กว่าๆ  ทำไมพี่เขาใช้ width:980px แล้วในมือถือมันไม่กว้างทะลุมือถือไปละครับ งงมาก อันนี้ผมมือใหม่จริงๆ ขออนุญาตถามเบสิกๆเลย
#17
อ้างถึงจาก: MD.18 ใน 18 ธันวาคม 2016, 12:00:27
:wanwan004: ถ้ามันเข้าท่าเค้าคงทำกันทั้งบางครับ... คุณเห็นเว็บอย่างที่ว่ากี่เว็บ
ถ้าจะให้ชัวร์ให้โพสลิงค์เว็บที่ว่ามาได้เลย..... ถ้าไม่มีบัคให้อมขี้หมามาพ่นใส่ความเห็นที่สามได้เลย.

....ยกเว้นเว็บที่ว่าจะเป้นอะไรที่ง่ายๆ column เดียวไปเลยก็พอจะทำได้อยู๋......

เว็บนี้ครับ edit: ขออนุญาตลบเว็บนะครับ ได้คำตอบแล้ว เด่วหาว่าโฆษณา 555   ตะกี้ไปถามพี่เขาบอก ไม่ได้ใช้position อะไรเลย  ใช้margin กับหน่วย px ธรรมดา  ผมเลยงงมันใช้ได้ด้วยเหรอ กับทุกอุปกรณ์
#18
หมายถึงไม่ใช้ media queries หรือbootstrap grid system เลยครับ
พอดีเห็นของพี่คนนึง เขาใช้ margin:auto ทำให้div ไปอยู่ตรงกลาง (หน้าจอทุกอุปกรณ์ก็ตรงกลางไปด้วย) แล้วจากนั้น ถ้าส่วนไหนที่ไม่ใช่ตรงกลาง ก็ระบุตำแหน่งโดยอ้างอิงจาก div แม่ที่อยู่ตรงกลาง แทน โดยใช้position:relative,abosolute;  แล้วก็ใช้แต่หน่วย px  
หรือ บางทีก็divแม่ ชิดขอบซ้าย ขอบขวาไปเลย (ซึ่งขอบซ้ายขวาของทุกอุปกรณ์)แล้วposition:relative,absoluteเอาเช่นเดิม

อยากทราบว่าวิธีนี้มันworkจริงไหมคับ แล้วโอเคไหม เขายอมรับกันรึป่าว หรือมีวิธีที่ดีกว่านี้  ขอบคุณครับ
#19
โอเคได้ละครับ ขอบคุณมากๆครับ

SELECT free_images_table.photographer,
      GROUP_CONCAT(DISTINCT free_images_table.free_image) as free_images,
      GROUP_CONCAT(DISTINCT special_images_table.special_image) as special_images
FROM free_images_table
LEFT JOIN special_images_table
   ON special_images_table.photographer = free_images_table.photographer
GROUP BY photographer


อ้างถึงจาก: sputtaro ใน 09 ธันวาคม 2016, 12:20:18
การที่ตารางที่ 2 ไม่มี photographer เสมอไป จะทำให้ยุ่งยากขึ้นในการจัดความสัมพันธ์ระหว่างตารางที่เกี่ยวข้องกัน
แม้มันจะสามารถเรียกดูข้อมูลได้ก็ตาม(โดยอาจใช้ Query ปกติ หรือใช้ subquery ช่วย)

แต่ข้อมูลที่ photographer = Null หรือ photographer='';
ซึ่งในอนาคต จะมีเร็คคอร์ดจำนวนมาก
คุณจะแยกไม่ออก ว่าภาพนั้นถ่ายโดยใคร และควรจัดเข้าไปแสดงผลที่ไหน

อีกอย่างหนึ่ง การเรียกใช้ ตามที่คุณโพสท์ไว้ คือ SELECT id, photographer, image FROM MyTable
ไม่ใช่แนวคิดที่ดีแน่นอนครับ
คุณอาจยังไม่เห็นปัญหาตอนนี้ เพราะมีแค่ 10-20 เร็คคอร์ด
ลองเพิ่มมาสัก 100 ขึ้นไปดูสิ
หรือลองคิดถึงตอนคุณจะแบ่งหน้าการแสดงผลดูสิครับ

พยายามเริ่มต้นด้วยการออกแบบฐานข้อมูลที่ดี
และใช้คำสั่งที่กระชับ รัดกุม
จะช่วยให้คุณใช้งานทรัพยากรของระบบน้อยลง ใช้เวลาน้อยลง
แล้วคุณจะได้ระบบที่ดีตั้งแต่แรกครับ

**************
ผมเข้าใจว่า ตารางที่ 2 มี เร็คคอร์ที่บันทึกไว้โดยมี special_image แต่ไม่มี photographer(คือ photographer = Null หรือ photographer='')
หวังว่าผมจะเข้าใจถูกนะครับ
ถ้าไม่ใช่ ก็ขออภัยด้วยครับ

อ่อป่าวครับถ้าไม่มีก็ไม่มีทั้ง row เลยครับ คือ ไม่มีทั้งphotographer และ image ครับในตารางที่ 2  แนวคิดคือมีอยู่หน้านึงให้ตากล้องอัพโหลดรูปเข้ามา ซึ่งfreeimage เนี่ย ระบบrequire ว่าต้องอัพโหลด   ส่วนเจ้าspecial imageเนี่ยเป็นoptional คือ อัพโหลดก็ได้ไม่อัพก็ได้
ถ้าเป็นแบบนี้ควรdesignอย่างไรดีครับ
#20
ได้ละครับ  แต่ว่าถ้าเป็น 2 table จะทำไงครับ

ตามรูปด้านล่างนี่น่าจะยากอยู่นะครับ  ทำไงดีครับ  ปล.special image table ไม่จำเป็นต้องมีphotographerเสมอไปครับ