A-AA+then

สอบถามเรื่องสคริป เลือก จังหวัด อำเภอ ตำบล มันไม่ส่งค่าอะค่ะ

1,327
สอบถามเรื่องสคริป เลือก จังหวัด อำเภอ ตำบล มันไม่ส่งค่าอะค่ะ

พอเลือก อำเภอ ค่ามันไม่ยอมส่งอะค่ะ ทำให้ข้อมูลของตำบลไม่ออกมา

พอ echo ออกมาก่ดูไม่ได้ พอดูมันบอกว่า error บรรทัดนี้อะค่ะ

unterminated string litral
var datas = eval( '(' + req.responseText + ')' );// JSON


แบบนี้อะค่ะ

ไม่รู้ต้องแก้ยังไงอะค่ะ รบกวนด้วยค่ะ

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

ลอง alert(req.responseText) ก่อน var datas = eval( '(' + req.responseText + ')' );  ครับดูว่า server response อะไรออกมา
1

[{"categ_id":"<label for='categ_id'>1 :</label><select name='categ_id' id='categ_id' onchange='dochange(this)'><option value=''>--Select Category--</option><option value='1'>เฟอร์นิเจอร์</option><option value='2'>บานประตูไม้สัก</option><option value='3'>บิ้วอินไม้สัก</option><option value='4'>Decorating</option></select>","sc_id":"<label for='sc_id'>2 :</label><select name='sc_id' id='sc_id' onchange='dochange(this)'><option value=''>--------------</option></select>","ssc_id":"<label for='ssc_id'>3 :</label><select name='ssc_id' id='ssc_id'><option value=''>--------------</option></select>"}]

มันบอกว่าแบบนี้อะค่ะ  ค่า sc_id (อำเภอ )มันไม่ส่งมาอะค่ะ
2

ตัวสคริป เปนแบบนี้อะค่ะ

<?php    
    //ค่าที่ได้รับมาจากการ Submit

    
    echo "<form action=\"index.php?view=productList\" method=\"post\"  style=\"padding:0px 0px 0px 0px; margin:0px 0px 0px 0px; \">\n";
    echo '<span id="categ_idDiv">';
    echo "<label for=\"categ_id\">1 :</label><select name=\"categ_id\" id=\"categ_id\" onchange=\"dochange('categ_id')\">\n";
    echo "<option value=\"$categ_id\">--------------</option> \n" ;
    echo "</select></span>\n";
    
    echo '<span id="sc_idDiv">';
    echo "<label for=\"sc_id\">2 :</label><select name=\"sc_id\" id=\"sc_id\" onchange=\"dochange('sc_id')\">\n";
    echo "<option value=\"$sc_id\">--------------</option> \n" ;
    echo "</select></span>\n";
    
    echo '<span id="ssc_idDiv">';
    echo "<label for=\"ssc_id\">3 :</label><select name=\"ssc_id\" id=\"ssc_id\">\n";//รายการสุดท้ายไม่ต้องมี event แล้ว
    echo "<option value=\"$ssc_id\">--------------</option> \n" ;
    echo "</select></span>&nbsp;&nbsp;";
 
    echo "<input type=\"submit\" value=\"Submit\" name=\"submit\" />\n";
    echo "</form>\n";
?>



<script type="text/javascript">
//AJAX
function Inint_AJAX()
{
    try
    {
        return new ActiveXObject( "Msxml2.XMLHTTP" );
    }
    catch ( e )
    {
    };

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

    try
    {
        return new XMLHttpRequest();
    }
    catch ( e )
    {
    };

    alert( "XMLHttpRequest not supported" );
    return null;
};

function dochange( obj )
{
    var req = Inint_AJAX();
    var categ_id = document.getElementById( 'categ_id' ).value;
    var ssc_id = document.getElementById( 'ssc_id' ).value;
    if ( obj && obj.name == 'categ_id' )//เมื่อทำการเลือที่จังหวัดมา ให้เคลียร์ค่าอำเภอ
    {
        var sc_id = "";
    }
    else//เลือกรายการอื่น
    {
        var sc_id = document.getElementById( 'sc_id' ).value;
    };
    var data = "categ_id=" + categ_id + "&sc_id=" + sc_id + "&ssc_id=" + ssc_id;
    req.onreadystatechange = function()
    {
        if ( req.readyState == 4 )
        {
            if ( req.status == 200 )
            {
                var datas = eval( '(' + req.responseText + ')' );// JSON
                document.getElementById( 'categ_idDiv' ).innerHTML = datas[0].categ_id;
                document.getElementById( 'sc_idDiv' ).innerHTML = datas[0].sc_id;
                document.getElementById( 'ssc_idDiv' ).innerHTML = datas[0].ssc_id;
            };
        };
    };
    req.open( "post" , "chooseCat.php" , true );//สร้าง connection
    req.setRequestHeader( "Content-Type", "application/x-www-form-urlencoded" );// set Header
    req.send( data );//ส่งค่า
};

//โหลดครั้งแรก
window.onload = function()
{
    dochange( '' );
};
</script>



หน้า php เปนแบบนี้อะค่ะ

<?php
    //include("../config.inc.php");
    header( "Expires: Sat, 1 Jan 2005 00:00:00 GMT" );
    header( "Last-Modified: ".gmdate( "D, d M Y H:i:s" )."GMT" );
    header( "Cache-Control: no-cache, must-revalidate" );
    header( "Pragma: no-cache" );
    header( "content-type: application/x-javascript; charset=UTF-8" );

    $categ_id = $_POST['categ_id'];
    $c_id = $_POST['c_id'];
    $sc_id =$_POST['sc_id'];
    $ssc_id = $_POST['ssc_id'];
    

    $hostname_conn = "localhost";
    $username_conn = "root";
    $password_conn = "root";
    $database_conn = "mallika";
    mysql_connect( $hostname_conn , $username_conn , $password_conn ) or die( "เชื่อมต่อฐานข้อมูลไม่ได้" );
    mysql_select_db( $database_conn ) or die( "เลือกฐานข้อมูลไม่ได้" );// เลือกฐานข้อมูล
    //ให้คืนค่าจังหวัดไว้เป็นอันดับแรก
    $sql = "SELECT sp_id, sp_name,sp_name_en FROM super_catag ORDER BY sp_id";
        mysql_query("SET NAMES UTF8");
        $result = mysql_query( $sql );
    echo "[{\"categ_id\":\"";
    echo "<label for='categ_id'>1 :</label>";
    echo "<select name='categ_id' id='categ_id' onchange='dochange(this)'>";
    echo "<option value=''>--Select Category--</option>";
    while( $fetcharr = mysql_fetch_array( $result ) )
    {
        $id = $fetcharr[sp_id];
        $name = $fetcharr[sp_name];
        $name_en = $fetcharr[sp_name_en];
        echo "<option value='$id'";
        if ( $categ_id == $id )//เลือกจังหวัดที่เลือกไว้
        {
            echo " selected='selected'";
        };
        echo ">
$name</option>";
    };
    echo "</select>\",\"sc_id\":\"";

    echo "<label for='sc_id'>2 :</label>";
    echo "<select name='sc_id' id='sc_id' onchange='dochange(this)'>";
    //ถ้ามีการเลือกจังหวัดมาแล้วให้แสดงอำเภอต่อ
    if ( $categ_id != "0" && $categ_id != "" )
    {
        echo "<option value=''>--Select--</option>";
        echo $sql = "SELECT c_id, c_name,c_name_en FROM categ WHERE sp_id='$categ_id' ORDER BY c_name";
           
            mysql_query("SET NAMES UTF8");
            $result = mysql_query( $sql );
        while( $fetcharr = mysql_fetch_array( $result ) )
        {
            $id = $fetcharr[c_id];
            $name = $fetcharr[c_name];
            $name_en = $fetcharr[c_name_en];
            echo "<option value='$id'";
            if ( $sc_id == $id )//เลือกอำเภอที่เลือกไว้
            {
                echo " selected='selected'";
            };
            echo ">
$name</option>";
        };
    }
    else
    {
        echo "<option value=''>--------------</option>";
    };

    echo "</select>\",\"ssc_id\":\"";

    echo "<label for='ssc_id'>3 :</label>";
    echo "<select name='ssc_id' id='ssc_id'>";

    //ถ้ามีการเลือกอำเภอมาแล้วให้แสดงตำบลต่อ
    if ( $sc_id != "0" && $sc_id != "" )
    {
        echo "<option value=''>--Select--</option>";
        $sql = "SELECT sc_id, sc_name,sc_name_en FROM sub_categ WHERE c_id='$sc_id' ORDER BY sc_name" ;
            mysql_query("SET NAMES UTF8");
            $result = mysql_query( $sql );
        while( $fetcharr = mysql_fetch_array( $result ) )
        {
            $id = $fetcharr[sc_id];
            $name = $fetcharr[sc_name];
            $name_en = $fetcharr[sc_name_en];
            echo "<option value='$id'";
            if ( $ssc_id == $id )//เลือกตำบลที่เลือกไว้
            {
                echo " selected='selected'";
            };
            echo ">
$name</option>";
        };
    }
    else
    {
        echo "<option value=''>--------------</option>";
    };
    echo "</select>\"}]";

    mysql_close();
?>
3

ได้แล้วค่ะ ขอบคุนมากค่ะ
4
^