1

jQuery と AJAX を使用して入力フィールドに入力するフォームがあります。動的に入力されたドロップダウンからオプションを選択すると、 imgURL を変更できません。src

JavaScript:

$(document).ready(function(){
    $("#id").change(function(){
        $.ajax({
            url     : 'get_driver_data2.php',
            type    : 'POST',
            dataType: 'json',
            data    : $('#ContactTrucks').serialize(),
            success: function( data ) {
                   for(var id in data) {        
                          $(id).val( data[id] );
                   }
            }
        });
    });
});

PHP:

$id_selected = $_POST['id']; // Selected  Id
$query  = "SELECT * from admin_dispatch_records where id = '$id_selected' AND     driver LIKE '%$username%'";
$result = mysqli_query($dbcon, $query);
while ($row = mysqli_fetch_array($result, MYSQLI_ASSOC)) {
    $eta = $row['eta'];
    $time = $row['dispatch_time'];
    $date = $row['dispatch_date'];
    $name = $row['name'];
    $phone = $row['phone'];
    $vehicleyear = $row['vehicleyear'];
    $color = $row['color'];
    $make = $row['make'];
    $model = $row['model'];
    $vin = $row['vin'];
    $plate = $row['plate'];
    $mileage = $row['mileage'];
    $pickup = $row['pickup'];
    $dropoff = $row['dropoff'];
    $price = $row['price'];
    $invoice = $row['invoice'];
    $cash = $row['cash'];
    $credit = $row['credit'];
    $check = $row['check'];
    $po = $row['po'];
    $billed = $row['billed'];
    $need_to_bill = $row['need_to_bill'];
    $getphoto = $row['image_path'];
}

$arr = array( 'input#eta' => $eta, 'input#dispatch_time' => $time, 'input#dispatch_date' => $date, 'input#name' => $name, 'input#phone' => $phone, 'input#vehicleyear' => $vehicleyear, 'input#color' => $color, 'input#make' => $make, 'input#model' => $model, 'input#vin' => $vin, 'input#plate' => $plate, 'input#mileage' => $mileage, 'textarea#pickup' => $pickup, 'textarea#dropoff' => $dropoff, 'input#price' => $price, 'input#invoice' => $invoice, 'input#cash' => $cash, 'input#credit' => $credit, 'input#check' => $check, 'input#po' => $po, 'input#billed' => $billed, 'input#need_to_bill' => $need_to_bill, 'image#image_path' => $getphoto);
echo json_encode($arr);

HTML の一部:

<td>
<img id="image_path" src="????" />
</td>
</tr>
</table>

<p><strong>
<input type="submit" value="Complete Dispatch">
</strong></p>

src選択ボックスを変更するときに、AJAX 呼び出しからデータベースの値を入力するにはどうすればよいですか? 他のすべてのデータが取り込まれ、文字列が正しく返されます。入力ボックスを配置して を含めることで、それをテストしましたinput#image_path => $getphoto。タグの構文はまたはimgとは異なりますinputtextarea? PHP をインラインでインクルードしようとしsrcました$getphotoが、うまくいきませんでした。AJAX で渡されたデータを使用して非表示の入力フィールドを作成し、そのデータを取得して var にしようとしましたが、それもわかりません。

4

3 に答える 3

0

srcJavaScript が の属性を設定していません<img>

ループの後for、次のように配列からデータを引き出すことができます。

$("#image_path").attr("src", data['image#image_path']);

<input>または、非表示のアプローチを使用する場合は、次のようになります。

HTML:

<td>
<input type="hidden" id="image_path" value="default.png" />
<img id="photo" src="default.png" />
</td>

PHP:

$arr = array('input#eta' => $eta,
             ...
             'input#image_path' => $getphoto);

JavaScript:

$(document).ready(function(){
    $("#id").change(function(){
        $.ajax({
            url     : 'get_driver_data2.php',
            type    : 'POST',
            dataType: 'json',
            data    : $('#ContactTrucks').serialize(),
            success : function(data) {
                          for(var id in data) {        
                              $(id).val(data[id]);
                          }
                          $("#photo").attr("src", $("#image_path").val());
                      }
        });
    });
});
于 2012-12-03T05:18:37.253 に答える
0

ということですか

if (id=="image_path") $(id).attr("src", data[id] );
else $(id).val( data[id] );
于 2012-12-03T05:11:55.267 に答える
0

次のようattr()に変更するために使用できます。src

$(id).attr("src", data[id]);   // chnage the source of the img tag

この場合、次のforようにループ内で条件ステートメントを使用できます。

if(id=="image_path"){
   $(id).attr("src", data[id]);
}else{
   $(id).val(data[id]);
}
于 2012-12-03T05:15:06.680 に答える