เรียกใช้งานฟังก์ชั่นใน js จาก PHP อย่างไร

ถาม-ตอบ แนะนำไอเดียว โค้ดตัวอย่าง แนวทาง วิธีแก้ปัญหา เรียกใช้งานฟังก์ชั่นใน js จาก PHP อย่างไร

เรียกใช้งานฟังก์ชั่นใน js จาก PHP อย่างไร
ช่วยหน่อยคะ คือเรียกใช้งานฟังก์ชั่นใน js จาก PHP เรียกได้บ้างไม่ได้บ้างคะ


<?php
	$objConnect = mysql_connect("localhost","root","root");
	
	echo("<script>console.log('all ".$_POST["subject"]."');</script>");
	
	$testCount = $_POST["subject"] ;	
	
	$cutword = explode(",", $testCount);

	$j = $_POST["value"] ;
	echo("<script>console.log('value = ".$j."');</script>");  
	
	
	$WordNO = array("to","am","a");
	
	for($i=0;$i<count($WordNO);$i++)
	{		
	if($cutword[$j]==$WordNO[$i]){
		//$j=$j+1;
		echo '<script type="text/javascript">', 
		'myFunction();',
		'</script>';	
		
			}				
	}

	$objDB = mysql_select_db("test");

	$strSQL = strtolower("SELECT video FROM testtable where name = '" .$cutword[$j]. "' ");
	
	$objQuery = mysql_query($strSQL);
	$intNumField = mysql_num_fields($objQuery);
	$resultArray = array(); 
	while($obResult = mysql_fetch_array($objQuery))
	{
		$arrCol = array();
		for($i=0;$i<$intNumField;$i++)
		{
			$arrCol[mysql_field_name($objQuery,$i)] = $obResult[$i];
		}
		array_push($resultArray,$arrCol);
		
	}
	
	
	echo("<script>console.log('kkkkk ".$arrCol."');</script>");
	
	
		mysql_close($objConnect);
	$json = json_encode($arrCol);
	
	echo("<script>console.log('result>> ".$json."');</script>");
	//echo $json;
	
	$result = json_decode($json,true);
	//echo $result;
	echo("<script>console.log('result ".$result."');</script>");
	
	
echo $result[video];	
echo '<video onended="myFunction()" width="320" height="240" controls="controls" autoplay="autoplay">';
echo '<source src="'.$result[video].'" type="video/mp4">';
echo '</video>';
		

			
?>

<script>
	function myFunction() {
   
		var a = parseInt(localStorage.getItem("value3")) ;
		var b = a + 1 ;		
	  				$.ajax({
			url: "speech.php",
			data: 'subject=' + localStorage.getItem("value2") + '&value=' + b,
			type: 'POST',
		dataType: 'html',
		success: function(data) {
			console.log(data);
			{
				$('#div_show').html(data);
				}
		}
				});
				
				
		localStorage.setItem("value3" , b);		
				
	}	
 </script>	


	var res = final_transcript.split(" ");

			localStorage.setItem("value2",res);
			localStorage.setItem("value3",0);
		
					$.ajax({
			url: "speech.php",
			data: 'subject=' + res + '&value=' + 0,
			type: 'POST',
		dataType: 'html',
		success: function(data) {
			console.log(data);
			{
				$('#div_show').html(data);
				}
		}
				});




ทีแรกจะทำงานที่โค้ด js ก่อนคะ ตัวแปร final_transcript ไว้เก็บข้อความที่ผู้ใช้ป้อนเข้ามาแล้วเอามาตัดด้วยช่องว่าง แล้วส่งยัง speech.php มีปัญหาที่ php คะ คือว่าเรียกใช้งาน myFunction() ไม่ได้ สมมุติว่าผู้ใช้ป้อนประโยคว่า Hello I am student  โปรแกรมก็จะเล่นวิดีโอ hello พอเล่นเสร็จก็ทำงานที่ฟังก์ชั่น แล้วเล่นคำต่อไปอีก ถ้าเจอคำใน $WordNO โปรแกรมก็จะมาทำงานในฟังก์ชั่น ปัญหาคือถ้าไม่มีคำนั้นๆ ในฐานข้อมูล โปรแกรมจะหยุดเลยไม่มาทำงานในฟังก์ชั่น คือลองเรียกใช้ฟังก์ชั่นแล้วคะ เมื่อไม่เจอคำนั้นๆ ในฐานข้อมูล แต่ค่า VM  ใน console log มันรันค่าไปเรื่อยๆไม่หยุดเลย

 

ปล. คืองงมากคะ เคยเล่นได้แล้วอยู่ๆ ก็เพี้ยน ขนาดเอาไฟล์ที่เบคอัพไว้มารันก็ยังไม่ได้เลยคะ ## ช่วยหน่อยนะคะ



J&j 22-11-2014 20:49:54

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

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


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


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

 ความคิดเห็นที่ 1
ไม่รู้ว่าทำแบบไหน แต่ถ้าแนวทาง คือเราต้องสั่งค่าไปครั้งเดียว 
แล้วทำการหาวิดีโอ ทั้งหมดที่จะค้น และก็ตัดคำที่เป็นคำที่ไม่ต้องการค้นออกใน ไฟล์ php .ให้เสร็จก่อน
จากนั้นจาก string แบบ json เก็บค่าชื่อ วิดีโอทั้งหมดมาใช้งาน

จากนัืนก็ทำการแสดงวิดีโอ ตามตั้งการ ลองเอาโค้ดต่อไปนี้ไปใช้เป็นแนวทาง

ไฟล์ test_video.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <link rel="stylesheet" href="bootstrap/css/bootstrap.min.css">
</head>
<body>

 <br>  
    <div style="margin:auto;width:80%;">  
    <button class="btn btn-primary" type="button" id="btn-play">Play</button>
    <br>
    <div id="div_show"></div>
    </div>
    
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>      
<script type="text/javascript">
var obj_video;
var play_all;     
var playLoopVideo;
 $(function(){
    $("#btn-play").on("click",function(){
        var strData="Hello I am student";
        $.post("find_video.php",{
            strData:strData
        },function(data){
            if(data==0){
               $("#div_show").html("ไม่พบวิดีโอ");
            }else{
                obj_video=$.parseJSON(data);
                if(obj_video.length>0){
                    play_all=obj_video.length;
                    playLoopVideo(0);
                }
            }            
        });
    });
     

 });
playLoopVideo = function(i){
     if(i<play_all){
         var n=i+1; 
         var tagVideo='<video id="myvideo" onended="playLoopVideo('+n+')" width="320" height="240" controls="controls" autoplay="autoplay">';  
         tagVideo+='<source src="video/'+obj_video[i].video_name+'" type="video/mp4">'; 
         tagVideo+='</video>';    
         $("#div_show").html(tagVideo);
     }
}     
</script>                       
</body>
</html>



ไฟล์ find_video.php

<?php
header("Content-type:text/html; charset=UTF-8");              
header("Cache-Control: no-store, no-cache, must-revalidate");             
header("Cache-Control: post-check=0, pre-check=0", false);   
$objConnect = mysql_connect("localhost","root","root");  
$objDB = mysql_select_db("test");  
$arr_skip=array("to","am","a","i");  
$wordToCheck=strtolower(trim($_POST['strData']));
if($wordToCheck!=""){
    $arr_wordToCheck=explode(" ",$wordToCheck);
    $video_num=0;
    if(count($arr_wordToCheck)>0){
        foreach($arr_wordToCheck as $w){
            if(!in_array($w,$arr_skip)){ // ข้ามคำที่ไม่ต้องการ
                $video_name=@mysql_result(@mysql_query("
                    SELECT video FROM testtable where name = '".$w."'
                "),0,0);  
                if($video_name!=""){
                    $video_num++;
                    $json_data[]=array(  
                        "video_name"=>$video_name
                    );    
                }
            }
        }
    }
    if($video_num>0){
        $json= json_encode($json_data); 
        echo $json;
    }else{
        echo 0;  
    }
}
?>


ninenik 23-11-2014






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