Как я могу отделить значения автозаполнения jQuery? - PullRequest
0 голосов
/ 06 февраля 2011

Привет, ребята, я использую функцию автозаполнения jQuery, и мой вопрос в том, когда пользователь выбирает несколько вариантов из предложенных значений, как я могу отделить эти значения в php, чтобы я мог вставить их в таблицу или что-то в этом роде?

Вот форма:

<table>
<form method="post" action="clippost.php" name="search">
<tr>
<td class="clip"><label><span><p class="signin">Clip Name:</p></span></label></td>
<td class="clip"><input type="text" name="clip" class="biginput" /></td>
</tr>
<tr>
<td class="clip"><label><span><p class="signin">Topic:</p></span></label></td>
<td class="clip"><input type="text" name="topic" class="biginput" /></td>
<td class="clip"><p class="info">Seperate by commas.</p></td>
</tr>
<tr>
<?php 
$mysql=mysql_connect('localhost','***','***');
    mysql_select_db('jmtdy');
    $result=mysql_query("select * from users where username='".$_SESSION['username']."'") or die(mysql_error());
    $dbarray=mysql_fetch_assoc($result);
    $result2=mysql_query("select * from friendship where userid='".$dbarray['id']."'");
    if(mysql_num_rows($result2)>0){

echo'
<td class="clip"><label><span><p class="signin">Clip-on people:</p></span></label></td>
<td class="clip"><input class="biginput" type="text" name="clippedon" id="suggestedfriend" /></td>
<td class="clip"><a class="neutral" href="faq.php#clipon"><p class="info">What is this?</p></a></td>
</tr>
';
}
else {
    echo'
    <td class="clip"><p class="signin">You need to have friends to clip-on people.</p></td>
    <td class="clip"><a class="neutral" href="faq.php#clipon"><p class="info">What is this?</p></a></td>
    ';
    }
    ?>
    <tr><td class="clip"><label><span><p class="signin">Editable:</p></span></label></td><td><select name="editable">

                                                            <option value="edit">Yes</option>
                                                            <option value="noedit">No</option>
                                                            </select></td></tr>
    <tr><td><input class="submitButton" type="submit" value="Create Clip" /> </td></tr>                                                     
</form>
</table>

И скрипт jquery:

<script type="text/javascript">

$(function(){
    var data = {items: [
    <?php 

    $mysql=mysql_connect('localhost','***','***');
    mysql_select_db('jmtdy');
    $result=mysql_query("select * from users where username='".$_SESSION['username']."'") or die(mysql_error());
    $dbarray=mysql_fetch_assoc($result);
    $result2=mysql_query("select * from friendship where userid='".$dbarray['id']."'");
    while($dbarray2=mysql_fetch_assoc($result2)){
        $result3=mysql_query("select * from users where id='".$dbarray2['friendid']."'");
        $dbarray3=mysql_fetch_assoc($result3);


        echo '{value: "'.$dbarray3['id'].'", name: "'.$dbarray3['username'].'"},';
        }
        ?>
]};
$("#suggestedfriend").autoSuggest(data.items, {selectedItemProp: "name", searchObjProps: "name"});
});







</script>

И clippost.php:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en" id="Cliproid" class=" no_js">
<head>
    <link href='graphics/icon.png' rel='icon' type='image/png'/>
    <meta http-equiv="Content-type" content="text/html; charset=utf-8" />
    <meta http-equiv="Content-language" content="en" />
    <LINK REL=StyleSheet HREF="Mainstyles.css" TYPE="text/css"></link>
    <Title>Cliproid</title>
    </head>
    <body>
<?php 
$mysql=mysql_connect('localhost','*********','********');
    mysql_select_db('jmtdy');
$clip=mysql_real_escape_string($_POST['clip']); 
$topic=mysql_real_real_escape_string($_POST['topic']);

$editable=mysql_real_escape_string($_POST['editable']);
print_r($_POST['clippedon']);
?>
</body>
</html>

1 Ответ

0 голосов
/ 06 февраля 2011

Это зависит от того, какие данные поста (или, возможно, получения) ваш сервер получает из формы. Используйте printr ($ _ POST); чтобы увидеть данные, и если вы не можете их извлечь, опубликуйте вывод printr здесь.

-

Я проверил ваш код, проблема была в том, что ваша форма была внутри вашей таблицы. То есть, я считаю, что не разрешено в html, но тем не менее работает в основных браузерах. Однако, когда плагин autoSuggest добавляет скрытый ввод в таблицу, форма не подхватит это.

Решение: напишите <form><table>..</table></form> вместо <table><form>..</form></table>

Это доставит ваши данные в скрипт clippost.php. Однако, как вы увидите, данные будут храниться в произвольном имени поля при каждом запуске (as_values_xx, где x - число). Чтобы использовать стабильное имя поля, вы должны вызвать autoSuggest с параметром asHtmlID.

В clippost.php можно использовать $yourarray = explode(',',$_POST['as_values_your_custom_id']);, чтобы получить записи из поля. Он разделяется запятой и explode разделяется на запятую, образуя массив.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...