Ajax脚本在回调时破解

时间:2014-08-15 02:17:53

标签: javascript jquery mysql ajax

我有一个有效的脚本,但我似乎无法在同一个文档中复制它。

JQuery:

$("document").ready(function() {

//This first instance works

if($("#add-menu").length) {
    $("#add-menu").change(function() {
        var datum = 'shortname=' + $(this).val() + '&table=projects';
        $.post('proj_query.php', datum, response);
        function response(data) {
            var jSON = $.parseJSON(data);
            $("label:contains('Title:') + input:first").val(jSON.title);
            $("label:contains('Medium:') + input:first").val(jSON.medium);
            $("label:contains('Dimmensions:') + input:first").val(jSON.description);
            $("label:contains('Work Blurb:') + textarea:first").val(jSON.blurb);
        }
    });
}

//This one doesn't work

if($("#id-blurb").length) {
    $("#id-blurb a").click(function() {
        if($("#edit-menu").val().length) {
            var datum = 'shortname=' + $("#edit-menu").val() + '&table=projects';
            $.post('proj_query.php', datum, responseB);
            function responseB(data) {
                var jSON = $.parseJSON(data);
                $("#id-blurb textarea").val(jSON.blurb);
            }
        }
    });
}
});

当我通过运行警报进行测试时,我会收到警报,直到我添加回调函数(名为' responseB')。然后它停止生成它们。所以它似乎找到了这个文件,它似乎在接受数据,但这就是它。之后没有任何事情发生。

proj_query.php看起来像这样:

<?php
require_once ('../functions/functions.php');
connectDB('../functions/login.php');
require_once("session.php");

if(isset($_POST['shortname'])) {
  $shortname = $_POST['shortname'];
  $table = $_POST['table'];
  $query = "SELECT title, medium, description, blurb FROM $table WHERE shortname='$shortname'";
  $result = mysql_query($query);
  $results = mysql_fetch_array($result, MYSQL_ASSOC);
  print_r(json_encode($results));
}
?>

HTML就是这样(但你可能不需要):

<div id="change" class="grid_4">
<h3>Edit a Project</h3>
<form method="post" action="index.php" name="editform" onsubmit="return validateEdit(this);">
    <input type="hidden" name="edit" value="yes" />
    <div class="field_container"><label>Project Name:</label>
<select id="edit-menu" name="shortname">
    <option value="">Select a Project...</option>
<?php //For creating the dropdown menu
    $query = "SELECT * FROM projects ORDER BY title ASC";
    $result = mysql_query($query);
    if (!$result) die ("Server says: <br/>Database access failed: " . mysql_error());
    $rows = mysql_num_rows($result);
    for($i=0; $i<$rows; $i++) {
        $results[] = mysql_fetch_array($result, MYSQL_ASSOC);
        $option = $results[$i]['title'];
        $value = $results[$i]['shortname'];
        echo "<option value=\"$value\">" . $option . "</option>\n";
        }
?>
</select>
</div>
    <div class="field_container"><label>Title:</label><input type="text" name="title" maxlength="128"/></div>
    <div class="field_container"><label>Date:</label><input type="date" name="date" /></div>
    <div class="field_container"><label>Medium:</label><input type="text" name="medium" maxlength="256"/></div>
    <div class="field_container"><label>Dimmensions:</label><input type="text" name="description" maxlength="64"/></div>
    <div class="field_container"><label>Area:</label><input type="text" name="area" maxlength="16"/></div>
    <div class="field_container"><label>Video Number:</label><input type="text" name="video" maxlength="64"/></div>
    <div class="field_container"><label>New Shortname:</label><input type="text" name="new_shortname" maxlength="16"/></div>
    <div class="field_container" id="id-blurb"><label><a title="Click for old content">Work Blurb:</a></label><textarea class="blurb" name="blurb" rows="5" ></textarea></div>
    <input class="submit" type="submit" value="Edit Project" />
</form>
</div>

在这一个上敲我的头......

0 个答案:

没有答案