将jquery函数的结果转换为我可以在PHP

时间:2016-10-26 13:37:13

标签: php jquery

在这个论坛的帮助下,我已经完成了一个使用jQuery和生成的JSON数据的表单。我想把它向前推进一步。

我写了一个用户FORM,它有一个文本框,当用户开始输入jquery函数运行的公司名称时,在数据表上查找并以json格式返回任何匹配。

然后,用户可以选择所需的公司名称,然后将其插入到textbax中。同时,campany徽标的名称将作为.png文件插入到另一个文本框中。

我的公司名称文本框和图片名称文本框:

<input name="ClientName[]" placeholder="Client name" class="imaindatesel" id="search-box_1" type="text"  size="60" maxlength="40" />
<input name="CompanyImage[]" type="text"   id="company_image_1" class="ui-autocomplete-input"/>

我的jquery功能:

$(document).ready(function() {    
$('#search-box_1').autocomplete({
source: function( request, response ) {
    $.ajax({
        url : 'check_name.php',
        dataType: "json",
        data: {
           name_startsWith: request.term//,

        },
         success: function( data ) {
             response( $.map( data, function( item ) {
                var code = item.split("|");
                return {
                    label: code[0],
                    value: code[0],
                    data : item
                }
            }));
        }
    });
},
autoFocus: true,            
minLength: 3,
select: function( event, ui ) {
    var names = ui.item.data.split("|");                        
    $('#company_image_1').val(names[1]); //<---- I would like to use this as a PHP variable
$("#SelectView").hide();
// The line below is all I added to get the result I needed.
$("#LookUpCompanyImage").html("<img src=\"../../../conf/conf_images/boards/" + names[1] + "\">");

}               
});    

})

我的PHP脚本

$query = $db->query("SELECT RecordID, CompanyName, ImageName FROM conf_image_depository WHERE CompanyName LIKE '".$_GET['name_startsWith']."%' GROUP BY CompanyName ORDER BY CompanyName ASC");


$data = array();

while ($row = $query->fetch_assoc()) {
    //$data[] = $row['CompanyName']. " " . $row['ImageName'];
    $name = $row['CompanyName'].'|'.$row['ImageName'];
    array_push($data, $name);   

}

//return json data
echo json_encode($data);

ajax调用的结果:

["British Airways|British-Airways.png","British Assessment Bureau|british-assessment-bureau.png","British Gas|BritishGas.png","British Sugar|BritishSugar.png"] 

目前我有一个文本框,其中填充了“$('#company_image_1')。val(names [1]);”。

我需要做的是使用“$('#company_image_1')。val(names [1]);”来自jquery函数并将其转换为PHP变量。

原因是,在用户选择了jquery函数返回的公司后,JSON包含公司名称和公司徽标的图像名称。然后我想做两件事,在屏幕上显示图像并在MySQL插入中使用图像的名称。

再次,非常感谢您的时间。

2 个答案:

答案 0 :(得分:1)

我会在select函数中创建另一个ajax调用,它将图像名称发布到php。

所以你需要创建一个像这样的ajax调用:

$.ajax({
    url : 'save_name.php',
    dataType: "POST", // Set the dataType to POST, so we can send data to php
    data: {
       name: names[1],
    },
     success: function( data ) {
        console.log('successfully sent the name');
    }
});

然后在php文件save_name.php中,您可以捕获$ _POST变量并从中检索名称值。这样的事情。

if(isset($_POST['name'])){
    // Post name is set so we can use it.
    $name = $_POST['name']; 
}

当然,您使用sql以名称值更新数据库。

答案 1 :(得分:0)

我已经解决了如何解决我的问题。我需要做的就是添加以下代码行: $( “#选择查看”)隐藏()。 $( “#LookUpCompanyImage”)的HTML( “”);

我编辑了我的帖子以反映我所做的更改