ajax передать массив в php

Как передать массив PHP в функцию AJAX

Вот мой Ajax-вызов для отправки информации в мой php-файл

Тогда вот PHP-файл, который обрабатывает вызов.

По сути, я просто создаю простую систему голосования, по которой пользователь нажимает, и она обновляет базу данных, увеличивая ее на 1. Она увеличивает значения и все работает, за исключением того, что она будет увеличивать ее только для последнего опубликованного элемента. Так что даже если я откажусь от предыдущей темы, это добавит только 1 голос к последней добавленной теме. Любой совет высоко ценится, спасибо заранее!

Решение

Если вы используете цикл для заполнения идентификатора строки, который выглядит так, как будто вы здесь, это ваши проблемы.

Цикл создает скрытый элемент ввода на каждой итерации цикла, и вы не меняете идентификатор элемента. Таким образом, у вас будет множество элементов с одинаковым идентификатором. Это вызовет у вас проблемы несколькими разными способами.

Я изменил ваш PHP-код, чтобы у каждого элемента был свой идентификатор. Я также изменил вашу функцию javascript, чтобы значение id передавалось самой функции.

Посмотрите, поможет ли это:

Я также хочу отметить, что в коде ниже:

Вы выходите из сценария на первой итерации цикла, и вы получите только один результат.

Если вам нужно вернуть массив данных, он должен выглядеть так:

Затем вам нужно будет установить тип данных json вместо html.

Ответ в вашем ajax теперь будет массивом. Чтобы увидеть массив:

Другие решения

Проблема заключается в том, что в обработчике событий вы обращаетесь к элементу по идентификатору, а при щелчке он не всегда совпадает.

Вы можете использовать событие, чтобы получить действительный элемент. Это аргумент по умолчанию, который передается обработчику, но не забудьте определить его без фигурных скобок:

Источник

Я хочу манипулировать массивом JavaScript в PHP. Можно ли сделать что-то подобное?

9 ответов

Это оно! Теперь вы можете получить к нему доступ в PHP:

Это потому, что PHP читает ваше значение в виде строки. Если я не хочу передавать свои данные как объект (как в предыдущих ответах, что тоже хорошо), я просто делаю это в своем PHP:

Используйте встроенную функциональность PHP добавления операнда массива к желаемому имени переменной.

Если мы добавим значения в массив Javascript следующим образом:

Он может быть отправлен на сервер следующим образом:

Обратите внимание на цитаты вокруг деятельности []. Значения будут доступны следующим образом:

Это сработало для меня:

И это для вашего PHP :

Используйте функцию JQuery Serialize

Я должен быть таким:

Я знаю, что может быть слишком поздно, чтобы ответить на это, но это сработало для меня отличным способом:

Стригируйте свой объект javascript (json) с помощью var st = JSON.stringify(your_object);

Вы должны превратить это в строку. Вы можете сделать это, используя метод stringify в библиотеке JSON2.

Код будет выглядеть примерно так:

Вам нужно будет обратиться к PHP-гуру, чтобы узнать, как справиться с этим на сервере. Я думаю, что другие ответы здесь близки к решению.

Данные могут быть возвращены с сервера аналогичным образом. То есть Вы можете превратить его обратно в объект.

Вы захотите закодировать свой массив как JSON перед отправкой, или вы просто получите мусор на другом конце.

Поскольку все, что вы отправляете, это массив, вы можете просто сделать:

Который автоматически преобразует массив для вас.

Источник

Как передать массив с помощью PHP & Ajax в Javascript?

извинения, если это объяснение не ясно, мне тоже трудно понять. как я могу использовать PHP & Ajax для отправки массива на Javascript? Я использую Ajax для получения массива фотографий, которые я затем хочу добавить к пустому

jQuery выглядит следующим образом:

и функция PHP getPhotos выглядит так:

если я делаю var_dump($photos) в PHP, результат выглядит примерно так:

Я пробовал различные комбинации json_encode и тому подобное, но на самом деле я догадываюсь и не уверен в теории, стоящей за этим. Каков наилучший способ передачи данных с PHP на Javascript в этом контексте?

5 ответов

на стороне PHP вы захотите напечатать:

еще одна вещь, которую вы можете попробовать, чтобы лучше инкапсулировать свой код, и в качестве примера дальнейшего JSON gooodness, было бы:

затем на сервере вы получите доступ к ним с помощью:

здесь k является ключевым значением в ассоциативном массиве.

json_encode Это определенно путь. jQuery даже имеет встроенную поддержку для разбора JSON. Вы можете использовать, например,

верните сам json, а затем создайте массив в js, зацикливаясь на json следующим образом:

или вы можете просто работать с самим json любой причиной необходимости массива?

что-то вроде json[0] или json[1] и т. д.

json_encode rulez, когда вам нужен этот материал.

Я недавно узнал эту классную вещь тоже! Вот как вы это делаете:

это необязательно, если вы хотите это сделать, вам не нужно, но в моей системе MVC я склонен писать так. Поэтому сначала я делаю запрос ajax (прототип) к скрипту, который позже вызывает эту функцию jsonResponse, о которой я упоминал ранее.

Это код jscript, обратите внимание на res.msg, здесь мы можем работать с массивами. Но, обязательно отправьте ответ в формате JSON в вашем PHP, используя функцию jsonResponse, она проста в использовании, например, ваша функция php может выглядеть примерно так:

позже вы можете получить его легко, res.имя пользователя, res.активно.

Источник

Я хочу манипулировать массивом JavaScript в PHP. Можно ли сделать что-то подобное?

Деятельность представляет собой одномерный массив, такой как:

Сценарий не завершается, когда я пытаюсь это сделать … Как его исправить?

Это оно! Теперь вы можете получить доступ к нему в PHP:

Вы хотите закодировать свой массив как JSON перед его отправкой, иначе вы просто получите некоторый барахл на другом конце.

Поскольку все, что вы отправляете, это массив, вы можете просто сделать:

который автоматически преобразует массив для вас.

Вам нужно превратить это в строку. Вы можете сделать это, используя метод stringify в библиотеке JSON2.

Код будет выглядеть примерно так:

Вам нужно будет обратиться к гуру PHP о том, как справиться с этим на сервере. Я думаю, что другие ответы здесь интимное решение.

Данные могут быть возвращены с сервера аналогичным образом. Т.е. вы можете вернуть его обратно в объект.

Я знаю, что может быть слишком поздно, чтобы ответить на это, но это сработало для меня великолепно:

Сгладьте свой javascript-объект (json) с помощью var st = JSON.stringify(your_object);

Вот и все … вы можете свободно использовать свои данные.

Используйте функцию JQuery Serialize

Это сработало для меня:

И это для вашего PHP :

Используйте встроенную функциональность PHP для добавления операнда массива в нужное имя переменной.

Если мы добавим значения в массив Javascript следующим образом:

Его можно отправить на сервер следующим образом:

Обратите внимание на цитаты вокруг действий []. Значения будут доступны следующим образом:

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *