0

我正在尝试使用 AJAX 和 Simple HTML DOM Parser 创建一个自动填充脚本。这是我到目前为止所拥有的:

PHP 文件 (discogs.php):

<?php

    ini_set('user_agent', 'TEST/1.0 +http://127.0.0.1/test/');

    require_once('simple_html_dom.php');

    // Create DOM from URL
    $html = file_get_html('http://www.discogs.com/release/'.$_POST["album_id"]);

    // Grab the Label
    $label = $html->find('.content > a', 0);
    echo $label;

    // Grab the Catalogue Number
    $catno = $html->find('.content', 0);
    echo $catno;

    // Grab the tracklist
    $tracklist = $html->find('div#tracklist', 0);     
    echo $tracklist; 

?>

为了节省空间,我将 HTML 和 jQuery 放在这里:http: //jsfiddle.net/Mobius1/cYGWs/

我知道如何使用 填充单个文本区域/输入 ,但我不知道如何使用 PHP 文件中的三个变量(和)$('element').val(data)填充所有三个输入。$label$catno$tracklist

可能吗?

4

1 回答 1

0

首先将脚本更改为如下

 jQuery.post('discogs.php', jQuery("#myform").serialize(), function(data) {

 $('element').val(data);

                 },"json");

然后,如下更改您的 php 脚本并删除您的 echo 变量语句

// New line of code for json
ini_set('user_agent', 'TEST/1.0 +http://127.0.0.1/test/');
require_once('simple_html_dom.php');

    // Create DOM from URL
    $html = file_get_html('http://www.discogs.com/release/3894873');

     // Grab the Label
     $label = $html->find('.content > a', 0);

    // Grab the Catalogue Number
    $catno = $html->find('.content', 0);

    // Grab the tracklist
    $tracklist = $html->find('div#tracklist', 0); 


$data =  array (
 "label" => (string) $label,
 "catno" => (string) $catno,
  "tracklist" => (string) $tracklist,
);

echo json_encode($data);
exit;

然后,如下更改您的成功处理函数

function(data) {

 $('lable element id').val(data.label);
 $('catno element id').val(data.catno);
 $('tracklist element id').val(data.tracklist);

                 }
于 2012-09-22T13:16:39.947 回答